inblog logo
|
Coding_study

    통신

    yuzu sim's avatar
    yuzu sim
    Jan 11, 2024
    통신
    물리적인 선 : 전류가 흐름
    반도체에서 0 OR 1로 처리함
    데이터가 실제로 흐르는 것은 O OR 1 이기에 bit가 전송되는 것
    개발자 입장에서는 ByteStream으로 보면 됨
    그 외의 선은 다 구현이 되어있음
     
    통신의 기본 : 응답이 와야 함
    3 way handshake : 3번 왔다갔다 하는 것
     
    프로토콜 : 컴퓨터 간에 상호통신을 할 때 데이터를 원활하고 신뢰성 있게 주고 받기 위한 약속
    같은 프로토콜을 사용하면 컴퓨터 상호간에 통신할 수 있고 데이터의 의미를 일치시켜 원하는 동작을 시킬 수 있음
     
    TCP/IP 통신의 프로토콜 5계층
    Application
    응용 프로그램 계층
    네트워크 통신에 필요한 응용 프로그램이 있는 곳 전송 계층을 사용하여 원격 호스트에 연결 요청을 보냄
    OS
    전송 계층 / 세그먼트
    서로 다른 호스트에서 실행 중인 응용 프로그램 사이의 연결을 설정 포트 번호를 할당하여 상위 응용 프로그램에서 실행 중인 프로세스를 추적네트워크 계층을 사용하여 접근
    OS
    네트워크 계층/패킷
    패킷을 생성하여서 서로 다른 네트워크로 전송 IP주소 > 패킷의 소스와 대상을 식별
    HW
    데이터 링크 계층
    프레임 생성, 점대점 방식으로 이동 프레임 : 캡슐화된 패킷을 감싸고 있음, MAC 주소를 사용하여 소스와 대상 식별
    HW
    물리적 계층
    프레임 안에 bit들이 부호화
     

    1. 통신의 종류

    TCP(Transmission Control Protocol) : 신뢰성 있는 통신

    서로 간의 연결을 설정한 후 통신
    데이터의 순서가 보장됨 → HTTP, FTP 등이 사용
    각 프로그램은 소켓을 연결의 양 끝점에 접속함
    단점 : 연결과 연결을 해제하는 과정에 시간이 많이 걸림
    짧은 데이터를 보낼 때 부담이 됨
    ex) ID, Passward
    notion image
    ** 소켓 : 개념적으로 응용 프로그램과 포트 사이에 존재
    하나의 포트에 하나의 소켓을 만들어 결합
    ** 포트 : 각각의 응용 프로그램이 사용하는 가상적인 통신 선로
    0~ 65535까지 정수를 사용하여 표기
    0~1023 : well—known port / 미리 예약되어 있음
    1023 ~ : 사용가능하나 컴퓨터 마다 다를 수 있음

    UDP(User Datagram Protocol) : 신뢰성 없는 통신

    데이터를 몇 개의 고정 길이의 패킷(다이어그램)으로 분할한 다음 패킷 앞에 주소를 붙여 전송
    순서가 바뀔 수 있음
    데이터가 유실 될 수 있음
    장점 : 연결 절차가 필요 없어 빠르고 효율적인 통신 가능 → UCC같은 동영상 서비스에 사용
     
    인간에게 보낼 때만 유실이 되어도 해석 가능
    ex) 사람간의 통화
    영화 : 끝이 없는 사진을 전송하는 스트리밍 / 속도가 중요함
    사진이 유실되도 보는데는 지장 없음
    notion image
     
     
    선이 하나면 : 전용선
    데이터 전송시 매우 빠름
     
    1) 서킷 스위칭 : 통신하는 주체가 늘어날 수록 회선이 늘어남
    돈이 엄청 많이 듦
    notion image
     
    2) 패킷 스위칭 : 위치에 따라 라우터를 묶어서 통신함
    notion image
    라우터(물리적인 기계) : 받은 데이터를 포워딩(재전송)
     
    동시에 1명에게 데이터 전송 > 우선순위 알고리즘이 발생
    최악의 알고리즘이 FIFO > 불만 발생 가능
     
    세그먼트(Segment) : 데이터를 Byte보다 더 작게 쪼개는 것
    os가 세그먼트로 나눈 후 고유 번호를 만들어줌
    → 데이터의 순서를 알려줌
     
    헤더(Header) : 데이터를 설명해주는 것
    출발지 주소, 목적지 주소 : IP 주소
    바디(Body) : 진짜 데이터
    RR(Round Robin)로 전송
     
    데이터는 가장 가까운 라우터가 받음
    데이터만 받으면 어디에 전송되는지 모름
     
    에크(Ack) : 응답
     
    패킷(Packet)으로 만들어져서 전송됨
     
    응답시
    패킷에 있는 에크 놀로지 주소를 보고 전송함
    a를 받고 응답이 와야 그 다음 b를 전송함
     
    💡
    데이터 유실 가능성
    • 양쪽의 라우터 중 어느 한 라우터의 용량 부족
    • 어느 한 라우터가 OFF인 경우
     
    응답이 안오면 데이터를 재전송함 > 재조립을 해야 함
    패킷을 헤더와 바디로 분리
     
    캡슐레이션 : 포장
    디캡슐레이션(Decapsulation) : 포장을 벗김
    에크놀로지를 보냄
    응답이 다시 올 때까지 기다리고 응답이 안오면 데이터를 버림
     
    영역 : os의 버퍼
    최적의 경로를 찾아주는 것 : 라우터
    컴퓨터가 가장 가까운 라우터로 데이터를 전송
     
    라우터가 최단 경로를 계산
    패킷이 없으면 최적의 경로를 못 찾음
    데이터가 몰리면 traffic이 발생 > 어떤 데이터가 먼저 도착할지 알 수 없음
    >세그먼트가 없으면 순서대로 재조립이 안됨
     
    이때 통신에서의 파일이 소켓이 됨
     
     
    Share article

    Coding_study

    RSS·Powered by Inblog