9/21 OSI 전송 계층

성준호·2024년 9월 21일
0

전송 계층은 양 끝단의 사용자들 간의 신뢰성 있는 데이터를 주고 받게 해주는 역할을 한다.
오류 검출 및 복구 / 흐름제어와 중복검사 등을 수행한다. 데이터 전송을 위해 Port 번호가 사용된다. 대표적은 프로토콜로는 TCP / UDP가 있다.

1. TCP

Transmission Control Protocol
신뢰성이 요구되는 애플리케이션에서 TCP를 사용한다.

1) 연결형 서비스

  • 3-way handshaking 과정을 통해 연결을 설정한다.
  • 4-way handshaking 을 통해 연결을 해제한다.

2) 흐름 제어

데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지한다

  • 송신 측에서 데이터를 빠르게 보내 수신 측에서 문제가 발생하는 것을 막는다.
  • 수신자가 윈도우 크기 값을 통해 수신량을 정할 수 있다.

3) 혼잡 제어

네트워크 내의 패킷 수가 넘치제 증가하지 않도록 방지한다.

  • 정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막는다.

4) 신뢰성 높은 전송

  • Dupack-based retransmission
    • 정상적인 상황에선 ACK 값이 연속적으로 전송되어야 한다
    • ACK 값이 중복으로 올 경우 패킷 이상을 감지하여 재전송을 요청한다.

5) 전이중, 점대점 방식

  • 전이중
    전송이 양방향으로 동시에 일어난다.
  • 점대점
    각 연결이 2개의 종단점을 가지고 있다.

2. UDP

User Datagarm Protocol
UDP는 비 연결지향형 프로토콜이다. TCP와 달리 혼잡제어와 흐름제어를 지원하지 않는다.
순서 보장이 되지 않지만 상대적으로 빠르다. 일대일, 일대다, 다대다 통신이 가능하다.

3. Port

운영 체제 통신에서의 종단점을 뜻한다.

어떠한 데이터가 송수신을 할 때
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 포트에 연결된다.

profile
안녕하세요

0개의 댓글