파리에서 에펠탑을 택배로 보내려면 어떻게 해야 할까
- 에펠탑을 택배로 보낼수 있도록 분해
- 단위포장 하여 운송
- 도착 지역에서 조립
File을 전송할 때도 같은 일이 발생한다.
Server측 파일을 Client로 보낼 때
- File MTU로 분해하기 (Packet, 캡슐화)
- Packet 단위 전송
- 에펠탑 조립하기 (캡슐화 해제)
상황
서버에 있는 bitmap 파일을 client에게 보내려고 하는 상황임.
A.bitmap 파일의 크기는 1.4MB
송신측
- Server는 파일의 일부분을 카피해서 프로세스 buffer부분에 copy
- send하기 위해서 i/o buffer 부분에 다시 copy
- 5계층에서 4계층으로 보낼 때 (유저모드에서 커널 모드로 이동하면서) 나눠짐
- 4계층에서 나눠 지면서 Segment화 됨.
- 3계층에서 Packet화됨
- 2계층에서 Frame(트럭) 안에 적제됨 -> Packet들은 유통 과정에서 트럭을 갈아타게됨
- 송신측(sender)에서는 Encapsulation이 일어남
수신측
- 파일이 프레임 형태로 Client에게 도착함
- Packet안에서 Segment를 꺼냄
- 수신측(reciever)에서는 Decapsulation이 일어남
- 수신측이 잘 받으면 TCP에서 ACK를 보내줌
(ex Segment 1번, 2번을 보냄 ACK 3번을 기다림, ACK 3번 오면 다시 보냄
- ACK는 순서 정보 뿐만이 아니라, 여유공간의 크기가 얼마나 남았는지도 함께 보내줌
발생 가능한 TCP/IP 장애 유형
- Lost Segment (유실)
- Re-transmition or ACK DUP (재전송 혹은 ACK 복제)
- Out of order (순서의 오류)
- Zero window (네트워크 송수신 속도가 프로세스 처리 속도보다 빨라서 발생 - End-point, App 문제)
참고
널널한 개발자 - 외워서 끝내는 네트워크 핵심이론 기초