본문 바로가기
프로그래밍/TCP IP

[TCP/IP] 트랜스포트 계층

by yonmoyonmo 2022. 1. 14.

이 책을 보며 정리한 내용입니다.

이전 포스팅 : https://wonmocyberschool.tistory.com/98?category=965066 

 

[TCP/IP] 애플리케이션 계층

1편 링크 : https://wonmocyberschool.tistory.com/84?category=965066 [TCP/IP] 컴퓨터 네트워크 [ TCP/IP 쉽게, 더 쉽게 ]를 보며 메모하는 중... 1. 컴퓨터 네트워크의 종류와 역할 컴퓨터 네트워크는 여러..

wonmocyberschool.tistory.com

트랜스포트 계층

트랜스포트 계층은 애플리케이션 계층과 인터넷 계층 사이에서 올바른 애플리케이션까지 데이터를 전달하는 역할을 한다. 이 때 포트번호를 이용하여 각 애플리케이션을 구분한다. 

인터넷 계층에서는 정확히 특정 컴퓨터까지 데이터를 전달하고 컴퓨터까지 전달된 데이터를 트랜스포트 계층에서 특정 애플리케이션까지 전달한다.

포트번호

포트번호는 컴퓨터 내부의 네트워크 수신지를 표현한다. 0~65535번까지 사용할 수 있다.

웰 노운 포트(Well-Known ports)  0 ~1023번 디폴트 어플리케이션이 정해진 유명한 포트

예) 80번(HTTP), 443번(HTTPS), 22번(SSH) 등등...
레지스터드 포트(Registered ports) 1024 ~ 49151번 할당 할 수 있는 포트
다이나믹 포트(dynamic ports) 49152 ~ 65535번 클라이언트에 자동 할당하는 포트

세 종류로 구분된다.

이 중 다이나믹 포트는 웹 브라우저 같은 클라이언트가 그때그때 동적으로 할당 받는 포트인데, 자동으로 할당하기 때문에 미리 어떤 포트를 사용할 지 알 수 없다.

트랜스포트 계층에서 사용되는 프로토콜은 TCP와 UDP가 있다.

TCP(Transmission Control Protocol)

TCP는 정확한 데이터 전달을 중시하는 프로토콜이다. 데이터를 세그먼트(segment)라는 단위로 분할하고, 전송 속도를 조정하며, 데이터가 재대로 전달되지 않았을 경우 재전송을 하게 된다. 세그먼트는 데이터와 TCP헤더로 이루어져 있고 인터넷 계층에서 IP헤더가 붙으면 패킷이 된다.

TCP헤더에는 송신지, 수신지 포트번호, 송신한 바이트 수를 나타내는 일련번호, 수신한 바이트 수를 나타내는 확인 응답 번호, 수신지의 여유 버퍼 사이즈를 나타내는 윈도우 사이즈, 통신 상태를 표현하는 컨트롤 비트 등등 통신을 제어할 수 있는 값들이 포함되어 있다. 이를 통해 전송 속도를 제어하고, 누락된 데이터를 재전송할 수 있게 된다.

컨트롤 비트는 On/Off로 표현되며 9개의 플래그로 이루어져 있다. 각각 1비트를 차지한다.

CWR 통신 경로가 혼잡, 전송량을 줄일 것을 알림.
ECE 통신 경로가 혼잡해서 수신할 수 없을 수도 있다는 것을 알림.
URG 긴급 포인터에서 지정한 데이터를 즉시 처리해야 한다는 것을 알림.
ACK 이전 동작을 확인했다는 것을 알림. 확인 응답 번호와 함께 사용된다.
PSH 수신 데이터를 즉시 어플리케이션 계층에 전달해야 한다는 것을 알림.
RST 이상 상황이 발생하여 접속이 강제 중단되었다는 것을 알림.
SYN  접속을 시작함을 알림.
FIN 데이터 송신이 완료되어 통신을 종료한다는 것을 알림.

TCP 통신은 연결을 맺는 과정이 3단계로 진행되어 3방향 핸드셰이크라고 부른다(3-way handshake)

클라이언트  ---->SYN---->       서버

클라이언트  <---ACK-<---SYN  서버

클라이언트  ----->ACK---->      서버

UDP(User Datagram Protocol)

UDP는 속도를 중시하는 프로토콜이다. 전송 속도 제어나 재전송을 하지 않고 그냥 데이터를 보내기만 한다. 데이터 손실이 생겨도 별로 상관 없는 영상 스트리밍 등에 사용된다고 한다.

UDP 헤더를 데이터에 붙여서 데이터그램(Datagram)이라는 단위로 데이터를 분할하여 전송한다. TCP헤더에 비하면 단순하다. UDP에서는 브로드캐스트(Broadcast), 멀티캐스트(Multicast)가 가능하다.



댓글