✨중요✨ TCP/IP 송수신 구조
2024. 5. 22. 18:35ㆍCS/네트워크
참고 자료 : 널널한 개발자님의 외워서 끝내는 네트워크 핵심이론 - 기초
순서도
해당 강의는 TCP/IP에 대해 공부한 후에 반드시 다시 보도록 하자. 이 흐름에 대해 완벽하게 이해하고 있어야한다.
- 보조기억장치에 저장되어있던 파일을 자른다.
- 프로세스의 버퍼 메모리에 자른 파일을 복사한다.
- 소켓 입출력 버퍼에 프로세스 버퍼 메모리에 있는 데이터를 복사한 후, 전송한다. 그리고 커널 모드의 TCP에 오면 하나의 연속된 데이터 Stream을 분할해서 Segment로 단위를 변경한다. 이후 L3 IP를 거쳐 Packet이 된다.
- 최종적으로 Frame의 형태로 데이터가 전송되게 된다. Frame은 수시로 변경되는 특성이 있다.
- 송신 측에서 Frame이 도착하고 커널 모드의 IP를 거쳐 Packet으로 Decapsulation된다.
- TCP를 거쳐 Segment가 되고, 소켓 입출력 버퍼에 채워진다. 이때 소켓 입출력 버퍼에 채워지는 속도와 프로세스의 버퍼에 데이터를 읽는 속도의 차이가 거의 동시에 진행이 된다. 소켓 입출력 버퍼의 여유 공간을 Window Size라고 한다. 그리도 TCP 단계에서 올바른 데이터를 전송 받았다면 ACK 신호를 보낸다.
- 소켓 입출력 버퍼로부터 데이터를 읽어서 프로세스 버퍼를 채운다.
네트워크 장애 (TCP 장애 유형)
이 플로우에서 발생할 수 있는 여러가지 네트워크 장애들이 있다.
- Packet Loss(유실) : 네트워크 오류에 해당한다.
- Re-transmission과 Dup ACK(중복 ACK) : ACK 3을 보냈는데 1, 2번 데이터를 송신에서 다시 보내게 되는 경우 1, 2번 데이터는 중복된다. 네트워크 오류와 End-point 오류에 해당한다.
- Out of order : 패킷을 1 ➡ 2 ➡ 3 순서로 보내야되는데 그러지 않은 경우 순서오류가 발생한다. 네트워크 오류에 해당한다.
- zero window : 수신 측 소켓 버퍼에 채우는 속도(네트워크 속도)가 소켓 버퍼를 비우는 속도(프로세스 처리 속도)보다 빠를 때 발생한다. End-point의 Application 오류에 해당한다.
'CS > 네트워크' 카테고리의 다른 글
L3 ▶ Subnet Mask (0) | 2024.05.23 |
---|---|
L3 ▶ IPv4 Header 형식 (0) | 2024.05.23 |
L3 ▶ IPv4 기본구조와 L3 Packet, Encapsulation과 Decapsulation (0) | 2024.05.22 |
L2 ▶ NIC, L2 Frame, LAN 카드 그리고 MAC 주소 (0) | 2024.05.22 |
OSI 7 layer 식별자와 Host와 스위치 (0) | 2024.05.21 |