CS 지식/컴퓨터 구조

헷갈리기 쉬운 TCP/IP 4계층과 TCP, IP 통신

Julie825 2023. 1. 13. 14:28

OSI 7계층을 대체하는 TCP/IP 4계층과 TCP, IP 각각을 혼동하는 경우가 많아서 각 용어를 제대로 정리하려고 한다.

OSI 7계층 : 인터넷에서 컴퓨터들이 서로 정보를 주고받는 프로토콜을 7 layer로 나눈 것.
TCP/IP : 인터넷에서 컴퓨터들이 서로 정보를 주고받는 프로토콜을 4 layer로 나눈 것.
TCP : Transport layer에서 정보를 주고받는 데 사용하는 프로토콜 중 하나.
IP : OSI의 Network 계층, TCP/IP의 Internet 계층에서 두 컴퓨터가 정보를 주고받는 데 사용하는 프로토콜 중 하나.

 

1. TCP/IP 4계층이란

출처 : ResearchGate

우리가 인터넷상에서 정보를 주고받는 데에는 여러 프로토콜이 필요하다.

유저 인풋을 안전하게 전달하는 방식부터 전기신호를 전선으로 보내는 것까지의 과정이 하나로 뭉쳐져 있다면 상당히 복잡할 것이다.

따라서 각 과정을 여러 계층으로 나누는 것이 필요한데, 이를 인터넷 프로토콜 스위트라고 한다.

인터넷 프로토콜 스위트 중 가장 유명한 것이 위의 OSI 7계층TCP/IP이다. 둘의 차이점은 아래와 같다.

 

- OSI 7 layer

OSI 7계층은 ISO에서 네트워크의 표준을 지정하기 위해 개발되었다. 인터넷 등장 이후에 나타난 개념이다.

실제 구현 예시가 TCP/IP에 비해 적다.

논리적인 기준으로 사용한다.

 

- TCP/IP Conceptual layer

인터넷 개발 이전에 TCP/IP 모델이 개발되었다.

인터넷 개발 이후 계속 표준화되어 신뢰성이 우수하다.

실질적인 통신을 구현할 때 사용된다.

 

2. TCP(Transport Control Protocol)란

Transport 계층에서 사용되는 프로토콜 중 하나이다.

이 계층에서 TCP를 대체할 수 있는 프로토콜에는 UDP, QUIC이 있다.

 

다른 프로토콜과 구분되는 TCP만의 특징은 신뢰성이 높다는 것이다.

TCP는 연결을 만들고 해제할 때 각각 3-way, 4-way handshake라는 과정을 거친다.

요청을 보내고, 서버 측에서 요청을 받아들인다는 응답을 받았을 때 비로소 본 작업을 시작하는 것이다.

이 과정이 없다면 클라이언트나 서버 둘 중에 하나가 문제가 생기면 반대편은 하염없이 고장난 쪽을 기다리거나 위험하게 데이터를 전송하게 된다.

또한 TCP는 가상회선 패킷 교환방식, 즉 특정 회선으로만 데이터가 가도록 해서 데이터를 전송한 순서대로 도착하게 하는 방식을 사용한다.

이런 특징으로 인해 네트워크 부하가 좀 커지더라도 신뢰성을 보장해야하는 작업에는 TCP 통신을, 그게 아닌 스트리밍 서비스 등에는 UDP를 사용한다.


접속 방식 : 3 way handshake

(1) 클라이언트가 접속을 요청하는 SYN 패킷을 보낸다.
(2) 서버가 알겠다는 의미에서 SYN+ACK 패킷을 보낸다.
(3) 응답을 받은 클라이언트가 마지막으로 ACK 패킷을 보내면 서버와 클라이언트 모두 Established 상태가 된다.


* 기억할 것 : Transport 계층의 Client와 Server는 둘다 Process이다.


접속 해제 방식 : 4 way handshake

(1) Established 상태에서 클라이언트가 FIN 패킷으로 해제 요청을 한다.
(2) FIN 패킷을 받은 서버는 관련 어플리케이션에 close를 요청하고, 동시에 클라이언트에게 ACK 패킷으로 응답한다.
(3) 클라이언트는 서버에서 close 완료되었다고 FIN 패킷이 다시 오기를 기다린다.
(4) 서버에서 close 마치고 FIN 패킷을 보내주면, 클라이언트가 ACK패킷을 보내 연결을 완전히 해제한다.

3. IP(Internet Protocol)란

OSI의 Network 계층, TCP/IP의 Internet 계층에서 컴퓨터의 논리적인 주소를 표현할 때 사용하는 방식이다.

인터넷의 수많은 컴퓨터 중 어떤 컴퓨터에게 데이터를 줄지 결정하는 데에 사용된다.

 

데이터 계층의 MAC 주소와 무슨 차이가 있는지 헷갈릴 수도 있다. 둘 다 컴퓨터마다 고유한 값을 가지기 때문이다.

MAC은 랜카드 제조회사가 부여하는 고유의 값이다. 부품을 갈지 않는 이상 변하지 않는다. 사람의 주민등록번호와 같다.

반면 IP는 인터넷에 연결할 때 이 컴퓨터를 찾기 위해 가상으로 지정하는 값이다. 사람의 집주소와 같다고 생각하면 된다. 이사를 가면 바뀐다.

IP → MAC 변환에는 ARP protocol을, MAC IP 변환에는 RARP protocol을 사용한다.