이전 포스팅 : https://wonmocyberschool.tistory.com/98?category=965066
트랜스포트 계층
트랜스포트 계층은 애플리케이션 계층과 인터넷 계층 사이에서 올바른 애플리케이션까지 데이터를 전달하는 역할을 한다. 이 때 포트번호를 이용하여 각 애플리케이션을 구분한다.
인터넷 계층에서는 정확히 특정 컴퓨터까지 데이터를 전달하고 컴퓨터까지 전달된 데이터를 트랜스포트 계층에서 특정 애플리케이션까지 전달한다.
포트번호
포트번호는 컴퓨터 내부의 네트워크 수신지를 표현한다. 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)가 가능하다.
'프로그래밍 > TCP IP' 카테고리의 다른 글
[TCP/IP] 네트워크 보안 (0) | 2022.01.16 |
---|---|
[TCP/IP] 네트워크 인터페이스 계층 (0) | 2022.01.16 |
[TCP/IP] 인터넷 계층과 라우팅 (0) | 2022.01.15 |
[TCP/IP] 애플리케이션 계층 (2) | 2022.01.14 |
[TCP/IP] 컴퓨터 네트워크 (0) | 2021.08.14 |
댓글