💋 패킷
✔️ 개념
패킷은 컴퓨터 네트워크에서 데이터를 전송하는 기본 단위
입니다.
The basic unit
of communication between a source and a destination in a network.
데이터 통신 중에 정보를 주고받을 때, 큰 데이터를 작은 조각으로 나누어 전송하게 되는데, 이 작은 조각이 패킷입니다. 목적지에서는 이 패킷을 재조립해서 정보를 얻습니다. 각 패킷에는 목적지 및 출발지 주소, 전송된 데이터 일부, 오류 검출을 위한 체크섬 등이 포함됩니다.
패킷 통신은 신속하고 효율적인 데이터 전송을 가능하게 하며, 중간에 문제가 발생할 경우 손상된 패킷만을 재전송할 수 있습니다. 이는 대규모 네트워크에서 안정적인 데이터 통신을 지원하는 데 기여합니다.
💋 패킷의 생성 원리
이 게시글은 패킷의 생성에 대한 내용이므로, 패킷이 전송되는 단계에 대해서 설명하지만, 생성되는 부분을 위주로 설명하겠습니다.
패킷은, 프로세스가 socket에 대고 I/O를 시도하면, 메모리에 저장된 Stream 형식의 긴 데이터를 일정 단위로 끊어 segment화한 후에 packet 형태로 포장해서 생성됩니다.
✔️ 데이터 분할
전송하려는 데이터인 stream이 MTU(Maximum Transmission Unit), 일반적으로 1500 byte보다 큰 경우 먼저 이 데이터를 작은 조각인 패킷으로 나누어집니다.
✔️ 헤더 추가
각각의 패킷에는 헤더라는 메타데이터가 추가됩니다.
이 헤더에는 출발지 및 목적지의 주소(일반적으로 IP 주소), 포트 번호, 전송 제어 정보(TCP의 경우), 패킷 순서 및 오류 검출을 위한 체크섬 등이 포함됩니다.
✔️ 데이터 추가
데이터 추가 단계에서는 헤더 뒤에 페이로드에 아까 분할한 데이터를 추가합니다.
TCP와 IP 헤더는 각각 20바이트씩을 차지하는 것이 일반적이기 때문에, MTU가 1500바이트인 경우, 페이로드의 길이는 1460바이트입니다.
✔️ 트레일러 추가
몇몇 프로토콜에서는 데이터 끝에 트레일러가 추가됩니다. 트레일러에는 추가적인 오류 검출 정보나 기타 메타데이터가 들어갈 수 있습니다.
✔️ 전송
네트워크를 통해 패킷은 목적지로 전송됩니다.
이 단계에서 패킷은 Frame으로 변환됩니다.
L2 계층은 데이터를 프레임으로 캡슐화하여 네트워크 매체(예. 이더넷)를 통해 전송합니다.
이때 프레임에는 MAC 헤더
와 트레일러가 추가되어 물리적인 주소와 오류 검출을 위한 정보를 제공합니다.
MAC 헤더에는 송신자와 수신자의 물리적인 주소(MAC 주소)와 같은 정보가 포함되어 있습니다. 예를 들면, 이더넷 프레임의 경우, MAC 헤더에는 송신자의 MAC 주소와 수신자의 MAC 주소가 포함됩니다. 이 정보는 해당 프레임이 물리적인 네트워크에서 어디로 가야 하는지를 결정하는 데 사용됩니다.
중간에 여러 네트워크 장비를 거치며 목적지에 도달할 때까지 패킷은 경로를 따라 이동합니다.
✔️ 수신 및 재조립
목적지에서는 받은 패킷들을 순서대로 받고, 필요하다면 재조립하여 원래의 데이터를 복원합니다.
💋 참고자료
- https://www.baeldung.com/cs/networking-packet-fragment-frame-datagram-segment
- https://www.youtube.com/watch?v=Bz-K-DPfioE&list=PLXvgR_grOs1BFH-TuqFsfHqbh-gpMbFoy&index=14
도움이 되었다면, 공감/댓글을 달아주면 깃짱에게 큰 힘이 됩니다!🌟
비밀댓글과 메일을 통해 오는 개인적인 질문은 받지 않고 있습니다. 꼭 공개댓글로 남겨주세요!
'Computer Science > Network' 카테고리의 다른 글
[Network] LAN vs WAN: 얼마나 넓은 범위의 네트워크여야 WAN이 될까? (0) | 2023.11.30 |
---|---|
[Network] 네트워크 구조의 큰그림과 용어 (0) | 2023.11.28 |
[네트워크] OSI 7 Layer: 각 계층의 특징을 알아보자! (2) | 2023.06.19 |