컴퓨터 네트워크 - week 13

deutan·2025년 12월 1일

computer-network

목록 보기
12/14

IP Header

Checksum

IP헤더의 checksum은 data를 하지 않고 오직 header만을 커버한다.

IP components


IP에 들어오는 경우는 transport or data-link
나가는 경우도 transport or data-link

따라서 총 4가지의 흐름의 생성된다.

Trasport Layer에서 들어오면 IP Header를 추가하고
Trasport Layer로 나갈땐 Reassembly 모듈을 실행한다.

Data-link Layer로 나갈땐 forwarding, fragmentation을 한다.

Reassembly Table


링크드 리스트 형태로 관리하며 마지막 도착지에서만 재조립한다.

중간 패킷이 Loss되어 비어있게 되면 전체 리스트를 다 버린다.

재전송 요청은 IP가 아닌 TCP가 하기 때문이다.


ICMP


ICMP 프로토콜은 Network 계층에 속하며

위 그림처럼 Encapsulation 된다.

ICMP는 Error Report용으로 사용되는 프로토콜이다.

어떤 지점에서 어떤 에러가 난건지 보고하기 위함이다.

ICMP messages들의 type번호가 정해져있다.

일반적인 format이다.

ICMP는 항상 original source에게 error를 보고한다.


예를 들어 어떤 router에서 맨 위 datagram을 받아 처리하는 과정에서 error가 났다고 가정하면 뒤 router가
IP data를 떼고 어떤 error인지 ICMP Header를 붙이며
원래의 IP header를 보고 original source에게 보내주는 IP datagram을 생성하여 보내주는 것이다.

Destination-unreachable


목적지에 도달하지 못한다 판단했을 때
type 3의 ICMP 헤더를 만들고

상황에 맞는 code를 작성한 후 original source로 다시 IP datagram을 만들어서 보낸다.

이런 기능은 통신에 있어서 congestion이나 flow를 제어하기 위함이지만 TCP상으로 다 구현되어 있고 IP는 그런 기능이 없기 때문에 제어의 역할은 할 수 없다.

Source-quench


라우터가 혼잡때문에 패킷을 제거할 때 original source에게 보내주는 ICMP 이다.

Time-exceeded message


IP 패킷의 TTL이 0이 되거나 fragmentation 조각들을 다 받지 못하여 버리는 경우 보내주는 ICMP이다.

code 0, 1로 구분한다.

Parameter-problem message


어떤 매개변수가 잘못 되었는지 pointer를 통해 알려주는 ICMP이다.

Redirection Message



같은 네트워크 내에서 A->B로 갈 때 R2로 바로가지 않고
R1을 거쳐 R2로 우회하는 것을 탐지했을 때 정보 업데이트를 위해 보내주는 ICMP 이다.

Echo-request and Echo-reply Message


우리는 네트워크 통신이 원활한지에 대한 체크를 할 때 터미널에서 ping 명령어를 통해 확인한다.
Echo-requst, reply는 상대 네트워크 계층까지 갔다오는 역할을 한다.

Type 8, 0을 통해 요청과 응답을 구분한다.

Timestamp-request and Timestamp-reply Message


Timestamp는 정확한 RTT 측정을 할 때 사용한다.


패킷을 보낸시간 Original, 받은시간 Receive, 처리 완료시간 Transmit에 저장하고 돌아오면
돌아온 시간은 알고 있기 때문에 총 4개의 시간으로 정확한 RTT를 계산할 수 있다.

이것은 두 개의 머신이 시간동기화가 되어있지 않아도 측정이 가능하다.
다만 전제조건으로 one-way delay를 정확히 알고 있어야 한다.

Traceroute


우리는 터미널에서 Tracert 명령어를 사용하면 중간에 거쳐가는 라우터들의 정보를 알 수 있다.
이건 Source에서 TTL값을 1부터 늘려가면서 계속 보낸다.

만약 TTL을 1로 보낸다면 첫 번째 router에서 TTL 0가 되고 ICMP를 보내주어서 정보를 알 수 있게 된다.

이렇게 의도적으로 TTL을 조절해가며 도착지 까지의 router 정보들을 알아낼 수 있다.

profile
Visual Computing and Learning

0개의 댓글