본문 바로가기
source-code/network

네트워크 기초 정리 - 데이터 단위

by mattew4483 2024. 2. 19.
728x90
반응형

Stream

User모드 Application Process(즉, socket) 수준에서의 데이터 단위를 Stream이라 합니다.

 

Stream 데이터란 시작점은 존재하지만 끝은 알 수 없는, 일렬로 쭉 널어진 데이터를 의미하며,

process는 File에 stream 데이터는 Write하게 됩니다.

(ex Word 문서 작업을 하며 글을 쓸 경우, 글자를 입력하는 만큼 파일 크기가 커짐)

 

Segment

stream 데이터가 Kernal로 이동해 TCP를 만날 때

Stream 데이터는 일정 길이로 분해되는데, 이를 segmentation이라 합니다.

추가적으로 이렇게 분해된 조각 하나하나의 데이터 단위를 Segment라 합니다.

 

이 때 Stream 데이터가 분해되는 일정 단위의 길이는

TCP 수준에서의 최대 길이에 의해 결정되는데, 이를 MSS(maximum segment size)라고 합니다.

 

Packet

Segment를 인터넷 환경에서 전송 가능한 형태로 포장한 데이터 단위를 Packet이라 합니다.

 

MSS는 Packet의 크기에 영향을 받는데,

이러한 Packet의 최대 전송 크기를 MTU(maximum transport unit)라고 하며, 일반적으로 그 크기는 1500bytes입니다.

(당연히 MSS는 1500bytes보다 작겠죠)

 

즉 예를 들어 1.5MB의 Stream 데이터를 네트워크로 전송하기 위해서는 → 약 1000개가 넘는 Packet이 존재해야하는 것이죠!

 

Frame

Packet을 네트워크로 실어나르기 위해 포장한 데이터 단위를 Frame이라고 하며,

Packet → Frame 변환 과정을 Encapsulation 이라고 합니다.

 


https://www.youtube.com/watch?v=p6ASAAMwgd8&list=PLXvgR_grOs1BFH-TuqFsfHqbh-gpMbFoy&index=7

728x90
반응형