본문 바로가기
네트워크/네트워크 이론

이론) 멀리 있는 컴퓨터와의 통신(feat. IP주소, 라우터)

by 빈스터디 2023. 1. 30.

IPv4 프로토콜

IPv4 프로토콜은 네트워크 상에서 데이터를 교환하기 위한 프로토콜이다.

IPv4 프로토콜은 데이터가 정확하게 전달될 것을 보장하지 않는다.(중복 및 순서 잘못 전달할 가능성 있음)

제대로 전달되지 않았을 시 정비하여 재전송하는 기능은 4계층에서 이루어진다.

위의 그림이 IP 프로토콜의 구조이다.

 

IHL(Header Length)는 4비트기 때문에 10진수 값 15까지만 표현이 가능하다.

이러한 이유로 20Bytes이상의 값은 나누기 4를 해서 나타낸다.

 

Total Length + Identification + IP Flags + Fragment Offset은 한 묶음으로 생각하면 된다.

데이터는 쪼개서 보낸다. 이와 관련된 역할을 하는 묶음이다.

(IP Flags는 패킷이 쪼개졌는지 안쪼개졌는지 나타내는 값이다.)

 

TTL(Time To Live) Count(횟수) 같은 개념이다. Time To Live에 하나의 네트워크 장비가 받을 수 있는 횟수가 적혀있다고 하고, 똑같은 패킷을 계속 받으면 1씩 차감시켜서 0이 될 때, 패킷을 더이상 받지 않는다. 

※ 이 부분은 나중에 더 배운 다음 정리할 예정

 

Protocol은 현재 프로토콜 다음에 올 프로토콜을 알려주는 기능을 한다.

Header Checksum은 오류를 검출하는 기능을 한다.

Source Address Destination Address는 말그대로 출발 IP주소와 도착 IP주소이다.

IP Option은 4Bytes씩 묶여있다. IP Option에 대한 자세한 내용은 다루지 않는다.

 

ICMP 프로토콜

ICMP(Internet Control Message Protocol) 프로토콜은 네트워크 장비랑 통신이 되는지 확인할 때 주로 사용한다.

Type과 Code는 외워두는 게 편함.

*Type(0.Echo Reply /  3.Destination Unreachable / 8.Echo / 11.Time Exceded)

*Type 0번과 8번은 전달이 제대로 됐는지 확인 요청하고 대답하는 것

*Type 3번과 11번은 오류가 날 때 뜬다.

  - 3번은 통신 대상한테 요청이 안 간 것 (보낸 쪽의 문제),

  - 11번은 요청은 잘 갔으나 대답을 못 받는 것 (받는 쪽의 문제) - 받는 쪽에서 방화벽을 켜놓은 경우

 

 

라우팅 테이블

통신 시 어딘가를 찾아갈 때 중요하다.

 

컴퓨터에서 확인하고 싶을 경우 cmd 창에 'netstat -r' 명령어를 사용한다.

선을 직접적으로 연결해놓을 경우, 라우팅 테이블이 자동으로 나온다.

직접 연결이 안되어 있어서 라우팅 테이블이 자동으로 나오지 않을 경우,

(한 다리 건너뛰어서 연결되어 있는 경우는 통신이 잘 이루어지지 않음)

경로를 지정해주는 라우팅 테이블을 작성해줘야 한다.

 

따라서, 경로 안에 있는 모든 네트워크 장비가 연결되어 있고, 라우팅 테이블에 추가되어있어야 통신이 된다.

 

인터넷 상에 있는 네트워크 대역을 모두 연결할 수는 없으니 네트워크 대상을 '0.0.0.0'으로 설정한다. 

모든 네트워크 대역은 게이트웨이로 가라는 뜻이다.

 

통신할 때 IPv4 프로토콜은 그대로이고, Ethernet 프로토콜만 수정된다.

 

 

패킷 쪼개기

큰 데이터를 전송하는 패킷은 쪼개는 과정을 갖기도 한다.

이 때 최대 쪼갤 수 있는 크기를 MTU(Maximum Transmission Unit)라고 한다.

이는 IP 프로토콜까지 포함된 값이다.

쪼개는 방식은 자세하게 다루지 않는다. 주로 보안에서 다룬다.