L4 ▶ TCP / UDP

2024. 5. 26. 16:18CS/네트워크

참고 자료 : 널널한 개발자님의 외워서 끝내는 네트워크 핵심이론 - 기초

TCP와 UDP

transport L4 계층의 대표적인 프로토콜로 TCP와 UDP가 있다.

  • TCP에만 연결(Connection, Session) 개념이 있다.
    • 3 way handshake와 같은 양방향 연결의 개념은 TCP에만 존재한다.
    • 연결이라는 개념은 Virtual이다. 즉, Logical한 개념이다.
  • 연결은 상태(전이)개념을 동반한다.
    • 전화 연결을 예시로 들어보면 연결 전, 연결, 연결 후라는 상태 개념으로 표현할 수 있다.
  • TCP는 ZeroWindow이면 패킷을 전송하지 않는다.
    • Socket I/0 Buffer에 수용할 수 있는 잔여 공간이 없다면 ZeroWindow가 발생하는데 이때 TCP는 송신 측으로부터의 패킷을 받지 않는다.
    • UDP는 그냥 보낸다. 배려가 없는 나쁜 남자이다.

TCP의 개요

 

간단하게 TCP Connection이 어떤 과정으로 진행되는지 정리하자.

TCP는 연결을 시도하는 Client와 연결 시도를 받아들이는 Server 구조로 표현할 수 있다.

그리고 "연결"이라는 것은 Server의 IP주소와 Port 번호를 알아야 기본적으로 "시도"할 수 있다.

 

먼저 Client 쪽에서 Socket을 생성하고 연다.

TCP 소켓을 생성한다면 커널 영역의 TCP로부터 Socket은 TCP Port 번호를 부여받게 된다. Port 번호는 L4 계층의 식별자로 관점에 따라 Process, Service, Interface의 식별을 담당하게 된다.

그리고 서버의 IP주소와 소켓의 포트번호를 명시한다. 이후 서버에게 3-way-handshaking 을 시도하게 되고, 서버는 통신을 보내는 클라이언트에게 지정된 연결 소켓을 생성해서 TCP 연결이 된다. 

 

이는 서버 쪽에서 LISTEN 상태 즉, 연결 대기 상태일 때 가능하며 만약 연결 대기 상태가 아니라면 L4계층에서 블락킹된다.

'CS > 네트워크' 카테고리의 다른 글

L4 ▶ TCP Header / UDP Header  (0) 2024.06.02
L4 ▶ TCP 연결 / 종료 과정  (1) 2024.06.02
L3 ▶ Ping과 RTT  (0) 2024.05.24
L3 ▶ ARP  (0) 2024.05.24
L3 ▶ DHCP  (0) 2024.05.24