본문으로 바로가기

TIL 2021-10-20 IP2

category TIL 2021. 10. 20. 11:39

IPv4 Header Checksum

 

TCP/IP 프로토콜에 가장 많이 쓰이는 에러 탐지 기법

 

패킷 전송 도중 변질을 막아줌

 

패킷에 추가되는 중복정보

 

송신 측에서 계산되고 받는 측에서 동일한 계산을 다시 함

 

Header Checksum

 

Header에 대한 Checksum(data 아님)

 

header 값이 바뀌면 재계산되고 다시 검증됨

 

checksum 알고리즘

 

checksum 필드는 header의 모든 16비트 word의 complement sum을 다 더한 16비트임

 

checksum값을 계산하면 필드의 값은 0임

 

 

Internet Host를 위한 요구사항

 

Internet Layer of host software는 IP와 ICMP를 가져야한다.

 

IP에 대해서 두가지 기능

 

송신 IP 데이타그램을 위한 다음 hop gateway나 호스트를 정하기

 

들어오는 IP datagram 조립하기

 

ICMP

IP Layer는 진단과 에러 검출 기능을 제공해야한다

 

들어오는 datagram에 대해서 IP Layer는

 

1)제대로 formatted되었는지 검증한다.

2)그것이 로컬호스트로 목적되어있는지 검증

3)옵션을 실행

4)필요하다면 데이터그램 재조립

5)적절한 transport-layer protocol모듈로 캡슐화된 메세지를 전송

 

들어오는 datagram는 'destination address field'가 이런 경우에 호스트가 목적지임

1)hosts' IP address

2)연결된 네트워크엥 적합한 IP broadcast 주소

3)들어오는 물리적 인터페이스에 호스트가 멤버인 멀티캐스트 그룹의 주소일떄

 

송신 데이터그램에 대해 IP Layer는

 

1)transport layer에 의해 채워지지 않은 필드들을 채움

2)연결된 네트워크의 올바른 첫 hop을 선택함(routing)

3)필요하다면 fragment함

4)적절한 link-layer 드라이버에 패킷을 이동시킴

 

Option

 

network testing과 디버깅에 사용

 

모든 IP option(NOP, END-OF-LIST)는 transport-layer로 이동해야함

 

1.Source Route Options

2.Other options are not used any more

 

Source Route

 

종류

1.strict source routing

 

송신자는 데이터그램이 이동할 specific path를 정함

 

ICMP 'source router fail'error는 소스 라우트에 의해 명시된 라우터가 없으면 반환됨

 

2.loose source routing

 

송신자는 데이터 그램이 이동할 주소의 리스트를 정함

 

종종 데이터그램은 리스트에 specified되지 않은 주소를 가진 라우터를 통해 갈때도 있음

 

 

Forwading

 

packet, frame들을 효율적으로 적송하는 것

 

Routing Algorithm

 

src와 dst 간의 어떤 라우트를 쓸지 결정하는 규칙들의 집함

 

Routing Protocol

 

라우팅 알고리즘을 구현할 메시지 교환 단계를 정함

 

 

 

Packet Forwarding

 

IP는 LAN 테크놀로지 기반의 포워딩 능력을 사용함

 

Direct Forwarding

목표지는 소스와 같은 네트워크

 

Indirect Forwarding

목표지는 어딘가..

 

 

Host Direct Forwarding

 

LAN은 IP subnet과 일치하다

 

1. Host B는 Host A로 IP 패킷을 옮겨야한다.

2.B는 둘다 동일한 서브넷에 있다는 것을 앎(NetID 비교)

3.B는 IP 목표 주소A와 맞는 physical address를 테이블에서 찾는다( ARP Table)

4. B의 IP Layer는 forwarding에 책임이 있는 하위 계층으로 패킷을 내려보낸다.(destination MAC a)

 

Host Indirect Forwarding

 

1.Host B는 131.17.23.4로 보내야함

2.B는 자기 주소를 알고 상대가 같은 서브넷에 없다는 것을 앎

다음 hop으로 넘김

 

 

Router Forwarding/Routing

 

Destination based:

 

Next hop routing

 

패킷이 주어졌을떄 라우터는 그것이 직접 연결된 네트워크 안에 있는 목적지인지를 알아야한다.

 

이런 확인을 하려면 라우터는 라우팅 테이블 네트워크 주소와 netmask, 그리고 목적지 주소와 인터페이스 netmask 사이의 AND 연산을 계산해야함.

 

라우터는 라우팅 테이블을 참고해야한다

 

만약 라우팅 테이블의 다음 HOP이 ::(unspecified)면 direct forwarding이 실행됨

 

특정 IP면 indirect forwarding을 실행함

 

라우팅 테이블의 모든 행은 일치하는 netmask를 통해 확인됨

 

만약 matching entries가 여러개면, netmask에 1이 제일 많은 것이 선택됨

'TIL' 카테고리의 다른 글

TIL 2021-11-10 ICMP 1  (0) 2021.11.10
TIL 2021-11-09 Python Pandas, Spam Filtering  (0) 2021.11.09
TIL 2021-11-06 Next.js12  (0) 2021.11.06
TIL 2021-11-05 useInfiniteQuery와 Cursor Pagination, Intersection Observer Hook  (0) 2021.11.05
TIL 2021-10-15 IP  (0) 2021.10.15