본문 바로가기
network

Ip,Tcp 간략정리

by 스르나 2021. 2. 3.

Ip

ip는 internet protocol의 약자이다. 우리가 인터넷을 통해 데이터를 주고 받을때 ip가 사용된다.

 

한가지 예를 들어보자 지금 내컴퓨터에서 미국에있는 사람에게 메세지를 보낸다고 생각해보자. 이럴때 인터넷은 어떤식으로 미국까지 메세지를 전달할까?

 

 

이런식의 인터넷 통신을 위해서는 출발지의 ip주소와 목적지의 ip주소를 보고 데이터를 전달하는 과정이 있는데 이러한 과정을 위한 규칙이 Ip이다.

 

출발지에서 목적지까지 가는 경로에는 여러 경로가 존재한다.(노드라고 하겠다) 이 노드들은 Ip에의해 정해진 규칙에 때라 출발지 ip주소와 목적지 ip주소를 보고 목적지까지 메세지가 전달 되도록 다음 노드로 전달을한다.

 

 

다음으로는 메세지가 클 경우 메세지는 패킷(Packet)이라는 단위로 나눠져서 전달이 되는데 이렇게 패킷단위로 메세지를 전달하는것도 Ip가 하는 일이다. 그 이유는 우리의 메세지 단위가 크다면 각 노드들은 여러 컴퓨터에서온 메세지를 철히다가 병목현상이 발생할 수 있기 때문에 작은 크기로 나눠서 빠르게 다음 노드로 전달하기 위해서이다.

 

딱 여기까지가 Ip의 역할인데 다시한번 정리를 해보면

 

1. 출발지 ip주소에서 부터 목적지 ip주소 까지 데이터전달

2. 데이터를 패킷이라는 단위로 나눠서 데이터를 전달

 

이렇게 2가지일을한다.

 

하지만 여기서 Ip의 한계점을 볼 수 있다.

 

첫번째. 한계로는 목적지의 상태가 불분명한데도 데이터를 전송을 한다.

목적지컴퓨터가 정말존재하는지, 존재하여도 현재 작동중인지 확인하지 않고 보낸다.

 

두번째. 비신뢰성

목적지까지 여러 노드들을 거치는데 노드들중 한군데서 패킷을 손실하여도 대처방법이 없다. 그리고 패킷단위로 나눠서 보내는데 각 패킷들은 전달과정에서 루트가 서로 다를 수 있다. 이때문에 패킷의 도착 순서가 잘못될 수 있는데 이 경우도 Ip는 대처방법이 없다.

 

세번째. 한 컴퓨터에 애플리케이션이 2개 이상이라면?

예를 들어 데이터를 보냈는데 도착지에서는 카카오톡과 유튜브가 실행중이다. 이 메세지를 어떤 애플리켓이션이 필요로하는 메세지인지 구분을 할 수 없다.

 

Tcp

Ip의 한계를 보완하기 위해서 네트워크 통신에서 Tcp를 사용한다. Tcp는 transmission control protocol의 약자이다.

 

우선 Tcp의 역할을 바로보자

 

1. 신뢰성(연결지향)

우선 신뢰성이란 Tcp는 3-way-handshake라는 것을 하는데 이것은 출발지 컴퓨터와 목적지 컴퓨터 사이의 가상의 연결(논리적 연결)을 하는 것이다.

3-way-handshake는 우선 출발지에서 syn이라는 접속 요청 메세지를 보내면 목적지에서는 동일하게 syn을 다시 보내고 요청수락 메세지인 ack을 같이 보낸다. 그럼 마지막으로 출발지에서도 ack를 보낸다.

 

이런 3-way-handshake덕분에 목적지 컴퓨터가 통신 가능한지 확인을 할 수 있다.

 

2. 데이터 전달 보증

출발지에서 데이터를 전송하면 목적지에서는 받았다는 메세지를 받을 수 있다.

 

3. 순서 보장

패킷의 순서가 달라져도 Tcp에서는 순서대로 온것까지는 가지고있고 순서가 틀린부분 부터는 다시 출발지에 틀린부분부터 요청을 해서 순서를 보장할 수 있다.

 

4.Port번호

port번호는 각 애플리케이션의 입구같은 것이다. 각 애플리케이션들은 통신을위해 자신의 port번호를 가지고 있는데 이 출발지,목적지 port번호를 가지고 목적지까지 갈 수 있게 하는것이 Tcp의 역할이다.

ip주소옆의 :숫자 부분이 port번호이다.

'network' 카테고리의 다른 글

http 메소드  (0) 2021.02.16