[Security Academy] 실무 개발보안 프로젝트 -week 1

Aquila·2024년 9월 30일

SecurityAcademy

목록 보기
9/9

Packet

개념

패킷은 컴퓨터 네트워크에서 데이터를 전송하는 기본 단위이다.

데이터 통신 중에 정보를 주고받을 때, 큰 데이터를 작은 조각으로 나누어 전송하게 되는데, 이 작은 조각이 패킷이다. 목적지에서는 이 패킷을 재조립해서 정보를 얻는다. 각 패킷에는 목적지 및 출발지 주소, 전송된 데이터 일부, 오류 검출을 위한 체크섬 등이 포함된다.

패킷 통신은 신속하고 효율적인 데이터 전송을 가능하게 하며, 중간에 문제가 발생할 경우 손상된 패킷만을 재전송할 수 있다. 이는 대규모 네트워크에서 안정적인 데이터 통신을 지원하는 데 기여한다.

패킷의 생성 원리

패킷은 프로세스가 socket에 대가 I/O를 시도하면, 메모리에 저장된 Stream 형식의 긴 데이터를 일정 단위로 끊어 segment화한 후에 packet 형태로 포장해서 생성된다.

데이터 분할

전송하려는 데이터인 stream이 MTU(Maximum Transmission Unit), 일반적으로 1500 byte보다 큰 경우 먼저 이 데이터를 작은 조각인 패킷으로 나누어진다.

헤더 추가

각각의 패킷에는 헤더라는 메타데이터가 추가된다.
이 헤더에는 출발지 및 목적지의 주소(일반적으로 IP 주소), 포트 번호, 전송 제어 정보(TCP의 경우), 패킷 순서 및 오류 검출을 위한 체크섬 등이 포함된다.

데이터 추가

데이터 추가 단계에서는 헤더 뒤에 페이로드에 아까 분할한 데이터를 추가한다.
TCP와 IP 헤더는 각각 20바이트씩을 차지하는 것이 일반적이기 때문에, MTU가 1500바이트인 경우, 페이로드의 길이는 1460바이트다.

트레일러 추가

몇몇 프로토콜에서는 데이터 끝에 트레일러가 추가된다. 트레일러에는 추가적인 오류 검출 정보나 기타 메타데이터가 들어갈 수 있다.

전송

네트워크를 통해 패킷은 목적지로 전송된다.
이 단계에서 패킷은 Frame으로 변환된다.
L2 계층은 데이터를 프레임으로 캡슐화하여 네트워크 매체(ex.ethernet)를 통해 전송한다.

이미지 출처

이때 프레임에는 MAC헤더와 트레일러가 추가되어 물리적인 주소와 오류 검출을 위한 정보를 제공한다.

MAC 헤더에는 송신자와 수신자의 물리적인 주소와 같은 정보가 포함되어 있다. 예를 들면, 이더넷 프레임의 경우 MAC 헤더에는 송신자의 MAC 주소와 수신자의 MAC 주소가 포함된다. 이 정보는 해당 프레임이 물리적인 네트워크에서 어디로 가야 하는지를 결정하는 데 사용된다.

중간에 여러 네트워크 장비를 거치며 목적지에 도달할 때까지 패킷은 경로를 따라 이동한다.

수신 및 재조립

목적지에서는 받은 패킷들을 순서대로 받고, 필요하다면 재조립하여 원래의 데이터를 복원한다.

참고자료

  • 이 글은 깃짱 님의 블로그 도움을 받아 작성되었습니다.

0개의 댓글