전송계층
전송계층은 OSI 7계층 중 4계층이며, 종단 간에 신뢰성 있는 데이터 전송을 맡는다. 네트워크 계층은 패킷을 목적지 호스트까지만 보낸다. 손상과 유실은 막아 주지 않는다. 그 간극을 메우는 것이 전송계층이다. 응용 프로세스를 식별하는 역할도 맡는다. 여러 응용 프로…
주요 장면
대본
정의
전송계층은 OSI 7계층 중 4계층이며, 종단 간에 신뢰성 있는 데이터 전송을 맡는다.
네트워크 계층은 패킷을 목적지 호스트까지만 보낸다. 손상과 유실은 막아 주지 않는다.
그 간극을 메우는 것이 전송계층이다. 응용 프로세스를 식별하는 역할도 맡는다.
포트 번호와 다중화·역다중화
여러 응용 프로그램이 같은 IP 주소를 공유한다. 호스트 주소만으로는 프로그램을 가릴 수 없다.
그래서 포트 번호로 응용 프로세스를 식별한다. 포트는 16비트 주소다.
송신 측은 여러 소켓의 데이터를 모아 헤더를 붙인다. 이것이 다중화다.
수신 측은 헤더의 포트 번호를 보고 올바른 소켓으로 전달한다. 이것이 역다중화다.
웹 서버 10.1.1.100의 80번 포트로 온 요청은 HTTP 프로세스로 전달된다.
흐름 제어와 혼잡 제어
앞 문제의 정답은 65535다. 16비트의 최댓값은 2의 16제곱에서 1을 뺀 값이다.
흐름 제어와 혼잡 제어는 목적이 다르므로 구분해서 알아야 한다.
흐름 제어는 송수신 측 사이의 데이터 양을 맞춘다. 수신 버퍼를 보호한다.
혼잡 제어는 네트워크 내부의 패킷 수를 조절한다. 과부하를 막는다.
두 기능을 혼동하면 감점이 된다.
AIMD 혼잡 제어
혼잡 제어의 기본 방식은 AIMD다. 증가는 조금씩, 감소는 절반으로 한다.
패킷이 문제없이 도착하면 전송량을 조금씩 늘린다. 이것이 Additive Increase다.
손실이 발생하면 전송 속도를 절반으로 줄인다. 이것이 Multiplicative Decrease다.
이를 보완하기 위해 Slow Start, Fast Retransmit, Fast Recovery를 함께 쓴다.
앞 문제의 정답은 전송 속도를 절반으로 줄이는 것이다.
TCP와 UDP 비교
TCP와 UDP는 연결 방식과 신뢰성 보장 수준에서 대비된다.
TCP는 연결형이고 순서를 보장하며, ACK로 수신을 확인한다.
UDP는 비연결형 데이터그램 방식이다. 순서 보장과 수신 확인이 없다.
신뢰성은 TCP가 높고, 속도는 UDP가 빠르다. 신뢰성과 속도는 상충 관계다.
응용 요구사항에 맞춰 둘 중 하나를 선택한다.
정리
전송계층은 종단 간에 신뢰성 있는 전송과 응용 프로세스 식별을 맡는다.
핵심 기능은 연결 제어, 다중화와 역다중화, 흐름·혼잡 제어다.
포트 번호는 16비트이고, 최댓값은 65535다.
흐름 제어와 혼잡 제어를 구분하고, TCP와 UDP의 차이를 정확히 쓰자.