[Network] 네트워크 데이터 단위

Oayenn·2023년 2월 16일
0

네트워크

목록 보기
5/7
post-thumbnail

영어공부에 있어 어렵지만 동시에 가장 중요하고 핵심적인 것이 단어 암기였다.
네트워크 데이터 단위 역시 그렇다. 앞으로의 본격적인 공부에 걸림돌이 되지 않도록 꼼꼼히 살펴보자!


🔦 본 포스트는 유튜브 널널한 개발자 강의를 기반으로 함을 알립니다.


네트워크 데이터 단위

1. File

  • 커널을 추상화한 인터페이스. socket이라고 한다.
    파일은 운영체제가 지원하는 한, 길이가 한정 없이 늘어난다(그에 따라 메모리도 함께 늘어난다). File과 함께 연상할 수 있는 또다른 데이터의 단위가 있다. Stream이다.

2. Stream

  • 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름. 한 장치에서 다른 장치로 보내지는 모든 정보.
    자바에서는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림(stream)이라는 흐름을 통해 다룬다. 스트림은 시작은 있으나 언제 끝날지 모른다는 특징이 있다. 이는 Process, 즉 프로그램이 어떻게 개발되었느냐에 따라 다르다. 길이가 굉장히 길어질 수도 있다는 것! = IP 수준에서 논하는 단위보다 길어질 수도 있다.

3. Segment

  • TCP에서 다루는 데이터 단위.
  • 스트림으로부터 데이터를 받아들이고 이를 일정 단위로 분할한 뒤, TCP 헤더를 덧붙여 TCP segment를 생성한다. 이렇게 만들어진 TCP segment는 IP 데이터 그램에 캡슐화되어 상대방에게 보내지게 된다.
  • 세그먼트 헤더와 실제 데이터로 구성되어 있다. 헤더 영역에는 어디서 보내는지, 어디로 보내는지, 몇번째인지 등의 정보들이 담긴다.

    📢 하단의 Data 영역을 제외한 모든 부분이 헤더 영역이다.

4. Packet

  • IP에서 다루는 데이터 단위
  • 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록

5. Frame

  • Driver, H/W(L2)에서 다루는 데이터 단위

💭 중간 정리

user mode의 application process가 filestream data를 write한다.
user mode에서 kernel mode로 내려가 TCP를 만나면 stream data는 segment화 된다. = segmentation (분해, 자르기)
이 때 일정 길이로 자른다는 것이 중요한데, 이 길이에는 MSS라고 하는 최대 크기가 있다.


6. MSS

  • maximum segment size.
  • MSS는 패킷의 크기에 기초해 만들어진다. 이 때, 패킷의 최대 크기가 있다. MTU(Maximum Transport Unit, 최대 전송 크기)라고 한다.

7. MTU

  • Maximum Transport Unit.
  • MTU는 특별한 경우가 아니라면 1500 byte이다. 즉 1.5KB로, 매우 작은 수준이다.
  • 1.5MB 정도의 데이터를 네트워크(인터넷)으로 보낸다면 적어도 천 여개의 packet이 나온다. (1.5MB == 1500KB)
  • packet은 frame으로 또다시 encapsulation(캡슐화) 된다.

💭 최종 정리

  • socket 수준 데이터 단위 : stream
  • TCP 데이터 단위 : segment
  • IP 데이터 단위 : packet

user mode-application-process 수준, 즉 socket 수준에서의 데이터 단위는 stream data이다. stream data란 그 끝을 알 수 없이 일렬로 쭉 늘어선 데이터이다. 데이터를 네트워크로 보내기 위해서는 분해가 일어나는데, 이를 segmentation이라 한다. 그렇게 잘린 조각 하나하나를 segment라 하고, 이것을 인터넷 환경에서 전송가능한 형태로 포장한 것을 packet이라 한다.
packet의 최대 크기는 1500 byte에 불과하다. MSS는 1500 byte보다 작다. packet을 실어나를 때는 다시 frame data에 넣는다.



개념 정리

✍🏻 IP 데이터그램

  • 데이터그램이란 인터넷을 통해 전달되는 정보의 기본 단위이다.
  • IP는 각기 개별적으로 전송되는 데이터그램이라는 패킷 형태로 데이터를 전송한다.


Reference

https://youtu.be/p6ASAAMwgd8
https://luv-n-interest.tistory.com/1033
https://velog.io/@nnnyeong/Network-Segment-%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%8A%B8
http://www.tcpschool.com/java/java_io_stream
http://itnovice1.blogspot.com/2019/08/ip.html

profile
차근차근 쌓아올리기

0개의 댓글