ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Network] 모두의 네트워크 - 4
    programing/Network 2020. 1. 16. 16:05

    안녕하세요, Einere입니다.

    (ADblock을 꺼주시면 감사하겠습니다.)


    해당 포스트는 모두의 네트워크를 읽고 간단하게 정리한 글입니다.

     

     

    6장 - 전송 계층 : 신뢰할 수 있는 데이터 전송하기

    lesson 23 - 전송 계층의 역할

    전송 계층

    물리 ~ 데이터 링크 ~ 네트워크 계층을 통해 데이터를 통신할 수 있지만, 해당 데이터의 손상 및 유실은 다루지 않는다.

    따라서 전송 계층에서는 다음 두가지 기능을 수행한다.

    1. 오류를 점검하는 기능
    2. 수신한 데이터의 목적지(어플리케이션)를 판단하는 기능

    또한 다음과 같은 특징이 있다.

    1. 신뢰성/정확성 : 데이터를 목적지에 온전하고 정확하게 손실없이 전송하는 것. 연결형 통신.
    2. 효율성 : 데이터를 목적지에 빠르게 전송하는 것. 비연결형 통신.

     

    연결형 통신

    송신 컴퓨터와 수신 컴퓨터가 서로 여러번 데이터를 잘 받았는지 확인하고자 패킷을 서로 주고받는 것.

    TCP가 있다.

     

    비연결형 통신

    송신 컴퓨터가 수신 컴퓨터가 잘 받았는지 신경쓰지 않고, 일방적으로 데이터를 송신하는 것.

    UDP가 있다.

     

    lesson 24 - TCP의 구조

    TCP

    TCP에서 붙이는 헤더를 TCP 헤더라고 한다.

    전송 계층에서 다루는 데이터는 세그먼트(segment)라고 한다.

    TCP 헤더에는 6비트 코드비트 영역이 있는데, 차례로 URG, ACK, PSH, RST, SYN, FIN을 의미한다.

    세션을 만들기 위해서 SYN과 ACK을 사용한다. (3 way handshaking)

    세션을 끊기 위해서 FIN과 ACK을 사용한다. (4 way handshaking)

     

    lesson 25 - 일련번호와 확인 응답 번호의 구조

    일련번호와 확인 응답 번호

    일련번호(sequence number, 32비트)는 전송하는 세그먼트가 몇번째 세그먼트인지 수신측에게 알려주는 역할을 한다.

    확인 응답 번호(acknowledgement number, 32비트)는 몇번째 세그먼트를 수신했는지 송신측에게 알려주는 역할을 한다.

    전송 제어 : 일련번호와 확인 응답 번호를 이용해 세그먼트의 손실을 복구하는 것.

     

    윈도우 크기

    한번에 하나의 세그먼트만 주고받는 것(stop and wait)은 비효율적이므로, 수신측은 버퍼를 준비하고 송신측은 수신측이 수신할 수있는 양만큼 세그먼트를 전송한다. 이를 위해 수신측은 송신측에게 자신의 버퍼 크기(윈도우 크기)를 알려주는데, 이것은 TCP 헤더에 포함되어 있다.

    통신을 하는 양 측은 3 way handshaking시 윈도우 크기를 교환하며, 세션이 연결되면 가용한 크기만큼 세그먼트를 연속적으로 주고 받는다.

     

    lesson 26 - 포트 번호의 구조

    포트 번호

    전송 계층에서는 수신한 데이터를 어느 앱으로 보내야 할 지 결정하기 위해, TCP 헤더에 출발지 포트 번호(16비트)와 도착지 포트 번호(16비트)가 있다.

    • 잘 알려진 포트(well-known ports) : 0~1023
    • 등록된 포트(registered ports) : 1024 ~ 49151
    • 동적 포트(dynamic ports) : 49152 ~ 65535

    포트 번호는 한 컴퓨터 내에서 여러 앱을 구분하는 값이다.

    브라우저로 웹에 접속할 때, 브라우저에 임의의 포트가 자동으로 할당된다.

     

    lesson 27 - UDP의 구조

    UDP

    효율성을 중시하는 비연결형 통신. 보통 동영상 스트리밍, 브로드캐스팅(랜 내부의 불특정 다수에 데이터 전송)에 사용된다.

    TCP와 동일하게 UDP 헤더를 붙이며, UDP 헤더가 붙은 데이터를 데이터그램이라고 한다.

     

     

     

    참고

    미즈구치 카츠야, 『모두의 네트워크, 10일 만에 배우는 네트워크 기초』, 도서출판길벗(2018).

    댓글

Designed by black7375.