본문 바로가기

항해 시절

TCP/IP 4계층, 송수신 과정 공부 중

728x90
728x90

TCP 송수신 관련하여 유튜브를 보다가 네트워크 TCP/IP 4계층에 대한 정리를 한번 해놓고 가려고 한다.

4계층 - Application Layer

응용프로그램들 즉, 웹서비스나 메일같은 서비스를 할 수 있도록 표준적인 인터페이스를 제공한다.

HTTP 프로토콜이 있는 계층, 현재는 HTTP/1.1을 주로 사용

3계층 - Transport Layer

통신 노드 간의 연결을 제어하고, 자료의 송수신을 담당

정확한 패킷 전송을 보장하는 TCP와, 그렇지 않은 UDP 프로토콜이 있음

2계층 - Internet Layer

통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅 기능을 담당

TCP의 Buffer(메모리)에서 데이터가 Segment로 분해되는데 각 Segment를 패킷(포장을 뜻함)으로 만들어 전송할 준비를 함

대표적으로 IP 프로토콜이 있음

1계층 - Network Access Layer

LAN, 위성 통신, 패킷망, MAC 등 전송을 함

송신 측 서버->수신측 서버로 데이터 전송 시 흐름을 간략히 정리하자면

송신측 서버 :

4계층 Memory -> 3계층 Memory로 복사 후 Segment로 쪼갬(각 Segment에 번호를 할당함) -> 2계층 각 Segment를 패킷으로 바꿈 -> 1계층 패킷을 각 주소에 맡는 곳으로 전달, 이때 패킷은 Frame으로 불림

수신측 서버 :

1계층에서 Frame 받음 -> 2계층 패킷을 뜯음 ->3계층 Memory에서 Segment를 다시 조립하기 시작함, 이때 남은 Memory의 크기를 Window Size라고 함 -> 4계층 Memory로 데이터를 받음

TCP 송수신을 하게 되면 수신 측 3계층에서 Segment를 받고 나서 ACK(acknowledgement) 송신측 서버에 보내서 Segment 잘 받았다고 알려주게 된다.

ACK안에는 Window Size가 포함되는데 Window Size가 0이면 송신 서버 측에서 데이터를 보내지 않고 Wait하게 된다.

즉 수신 측 4계층에 서버(서비스)의 Data Read 속도가 1계층에 들어오는 네트워크 데이터 수신 속도보다 빨라야 Data 전송 지연이 걸리지 않게 된다.