Next-Squad/Interview-Question

[Network] 4. 패킷이란 무엇인지 설명해주세요

CMSSKKK opened this issue · 1 comments

패킷이란 무엇인지 설명해주세요

키워드

IP, TCP, OSI 7계층, Socket, Segment, Frame, DPI, MTU, MSS

패킷(Packet)이란 IP Layer(L3)에서 사용되는 데이터 단위입니다.


패킷이 생성되는 과정을 살펴보면,
먼저 Application(Process)에서 데이터를 전송할 때 Socket 수준에서는 Stream의 형태를 가집니다.

이 후에 TCP Layer에서 Stream을 일정 단위로 쪼갭니다.
이 때 그 단위의 데이터를 Segment라고 부릅니다.
그리고 이후에 IP Layer에서 Packet으로 캡슐화합니다.

Packet의 최대 크기(MTU(Maximum Transport Unit))는 1500 byte입니다.

Packet은 Header, Payload, Trailer 로 나눌 수 있습니다.

Header는 IP Header, TCP Header로 나눠집니다.
또한 Header에는 출발지(Sender)의 IP 주소, 목적지(Receiver)의 IP주소, Protocol, 패킷 번호 또한 담고 있습니다.

Payload에는 Segment, 즉 데이터가 들어있습니다.
패킷을 조사할 때, Payload의 정보를 확인하는 것을 DPI(Deep Packet Inspection)이라고 합니다.

Trailer에는 패킷이 목적지에 제대로 도착했는지 확인하고자하는 정보가 담겨있습니다.
도착한 Payload의 데이터와 Trailer의 정보가 일치하지 않다면, 패킷을 재전송하도록 요청합니다.


Packet을 구분할 때, 대략적으로 Header와 Payload로만 구분하면,

일반적으로 IP Header가 20 byte, TCP Header가 20 byte를 가집니다.
그래서 Payload의 경우 Header의 크기 40 byte를 제외한 1460 byte가 MSS(Maximum Segment Size)가 됩니다.


이후에 Packet은 Frame으로 다시 한번 캡슐화 되어서 전송됩니다.

References

https://www.youtube.com/watch?v=Bz-K-DPfioE
https://www.youtube.com/watch?v=p6ASAAMwgd8&list=PLXvgR_grOs1BFH-TuqFsfHqbh-gpMbFoy&index=7
https://computer.howstuffworks.com/question525.htm