전송 계층은 양 끝단의 사용자들 간의 신뢰성 있는 데이터를 주고 받게 해주는 역할을 한다.
오류 검출 및 복구 / 흐름제어와 중복검사 등을 수행한다. 데이터 전송을 위해 Port 번호가 사용된다. 대표적은 프로토콜로는 TCP / UDP가 있다.
Transmission Control Protocol
신뢰성이 요구되는 애플리케이션에서 TCP를 사용한다.
데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지한다
네트워크 내의 패킷 수가 넘치제 증가하지 않도록 방지한다.
User Datagarm Protocol
UDP는 비 연결지향형 프로토콜이다. TCP와 달리 혼잡제어와 흐름제어를 지원하지 않는다.
순서 보장이 되지 않지만 상대적으로 빠르다. 일대일, 일대다, 다대다 통신이 가능하다.
운영 체제 통신에서의 종단점을 뜻한다.
어떠한 데이터가 송수신을 할 때
Datalink 계층에서는 호스트의 NIC로 MAC Address를 판별하고
Network 계층에서는 IP Address로 목적지를 판별한다.
이렇게 MAC Address와 IP Address를 통해 목적지 호스트까지 도달한 후에는
어떤 Process(프로세스)에서 데이터를 받을 것인지 를 알아야 하는데 이 때 쓰이는 것이
Port Number(포트 번호)다.
하나의 컴퓨터에는 여러개의 서버가 실행될 수 있다. 카카오톡, 라인, slack이 실행 중이라면 컴퓨터가 메시지를 받았을 때 어떤 프로그램으로 해당 메시지를 전송해야 하는가?
이를 해결하기 위해 패킷에 어떤 프로세스가 받아햐 하는지에 대한 Port 정보를 추가한다.
http 통신은 80번, ssh 통신은 22번 포트를 사용한다. 이렇게 정해져있는 0~1023번 포트를 well-known port라고 한다.
80 포트는 생략이 가능하기 때문에 http://test.com에 접속하면 80 포트에 연결된다.
http://test.com:8080 포트에 접속하면 8080 포트에 연결된다.