네트워크당
[네트워크] IPv4 구조와 패킷의 분리와 결합 원리
이히당
2023. 12. 4. 23:20
internet
- host, router network layer functions:
- transport layer- TCP, UDP 밑에 계층임
- network-layer : 라우팅 프로토콜에는 라우팅 알고리즘이 짝지어져 있어. 즉, forwarding table을 계산해
- SDN을 사용해 forwarding table 계산
- IP protocol ; 데이터에 관한 것. 데이터 그램의 아이피 주소를 찍어 보내. 어떤 식으로 데이터그램을 다룰거냐
- 동시에 여러 프로토콜이 존재: ICMP, routing, ip, SDN
- ICMP 아이피의 시그널 오류를 보고하기 위해서 사용하는 프로토콜
- 예) 받는 라우터가 다운되면 이걸 알리는 역할..
참고로, 네트워크 계층에서 사용되는 데이터 형식은 데이터그램 == 패킷이다.
차이는
TCP : packet
UCP : datagram 이라 생각하면 될듯하다.
ipv4 datagram format
- header
- ver: 여러 아이피 버전이 있으니까 제일 앞에 나와
- header length :헤더의 길이를 숫자로 표현 → 옵션필드가 가변길이기때문에 표시
- (options필드 - timestamp자기 주소+지나간 시간, record route taken자기 주소, 어떤 경로를 지나가야할지에대한 정보가 담겨있음 )
- 핑크색이 고정길이 헤더 : 20byte
- tos(type of service): 잘 안쓰이는 필드였어. 근데 나중에 diffserv같은걸 해주려고 하면서 조금씩 쓰여
- time to live : 데이터가 살아 돌아다닐 수 있는 시간을 표현한 필드. 이게 없으면 고스트처럼 계속 돌아다니는 애가 생길 수 있기 때문에. 소스 호스트가 내보낼때 먼저 세팅을 한다. 네트워크의 크기를 재서 적어준다.
- upper layer protocol : udp tcp icmp, ospf 중 어떤거로 보내야 하는지를 써둔다.
- header checksum : ip header만을 위한 체크섬. 다른 목적지로 배달하면 안되기 때문에 이를 방지하고자.
- 16bit identifier + flags + fragment offset : 잘라 쓰기 위해서.. 32비트를 다 써: for fragmentation/ reassembly
IPv4 fragmentation. reassembly
- ethernet는 1500 를 짊어질 수있어
- widearea link는 인터넷 코어를 아울러
- MTU(max translate unit)을 보내는데 감당이 안되면 잘라(fragment). 중간에 라우터는 자르기만 하고 재조립하지는 않아 왜냐면 재조립은 추가 과정이 수요되는 것이기 때문임. 재조립이 꼭 필요한 과정은 아니기에 목적지 호스트까지로 보내고, 호스트에서 재조립을 한다. 재조립이 이뤄지게 하려면 순서나 그런거를 표시를 해줘야해 그래서 ip header에 그런 정보들이 써있는거임 만약 합치려고하는데 하나의 프래그먼트가 드랍되었다는 걸 알면 그냥 드랍시켜. 그럼 tcp 같은 경우 tcp가 recover을 하게 됨.
- fragment가 어떻게 일어나나?
how to fragment? - fragflag:내 뒤에 누가 있는가를 표기. 0이면 내가 마지막이라는 소리
- id는 fragment하기 전 원본이 뭔지에 대해 나타내기 때문에 잘린애들은 다 같은 값을 가지고 있다.
- offset; 오리지날에서 내가 어디 부분이다.
- 헤더길이 20포한되어 있는 거임
- 1480을 8로 나는 185가 offset에 실리고 그 다음것도 비슷한 바익으로 offset을 설정해줄 수 있다.
728x90