네트워크

네트워크 프로토콜

자곰 2022. 1. 18. 23:20

네트워크를 통해 컴퓨터 간에 정보를 주고 받는 절차인 네트워크 프로토콜에 대한 개념을 정리해보자.

 

TCP/IP

인터넷 세계에서 표준으로 사용되고 있는 네트워크 프로토콜

인터넷상의 대표적인 서비스인 HTTP가 이 프로토콜 기반으로 작동한다.

 

통신상에서 주고 받는 데이터는 패킷이라는 단위로 나눠져 각각에 보낼 주소가 라벨로 붙어있다. 이것을 통해 네트워크상에서 상대방에게 전달 될 수 있는 것이다.

 

상위 계층이 되는 TCP는 이러한 패킷의 수신을 확인함으로써 패킷이 순서대로 올바르게 전달될 것을 보증한다. 이로써 신뢰성이 높고 확실한 데이터 송수신이 가능하게 된다. 하지만 여러 절차가 있는 만큼 상당히 무거워 UDP에 비해 느리다. 

 

TCP

TCP에서는 제5계층이상의 프로토콜에서 통신 데이터를 받아 패킷으로 분환을 하고 그 패킷을 제 3계층인 IP로 전달하여 상대방에 전달되도록 합니다. 

 

TCP에서는 몇가지 방법을 통해 신뢰성을 확보하고 있다. 

1. 통신 데이터를 패킷으로 분할할 때 시퀀스 번호를 붙여 두고, 수신 측에서 이 번호를 체크하여 필요하면 정렬을 하여 패킷의 순서가 올바르게 되도록 보증합니다.

2. 수신 측에서는 반드시 수신했다는 것을 나타내는 통지패킷을 송신 측에

돌려 보내여 잘 전달 되었는지 확인한다. 

3. 일정 시간을 기다려도 답이 오지 않으면 패킷을 재송출한다. 

TCP 과정

TCP는 양방향성 연결이기 때문에 클라이언트에서 서버에게 자신의 존재를 알리고 패킷을 보낼 수 있는 것처럼 서버에서도 클라이언트에게 자신의 존재를 알리고 패킷을 보낼 수 있다는 신호를 보낸다. ( 3-way handshake ) 

 

UDP

커네션리스형 통신 기능을 제공하는 프로토콜. 정보를 보낸다는 것을 상대방에게 알리지 않고 갑자기 송신해 고속으로 보내지만 신뢰성이 낮다. 

 

이러한 특징으로, 주로 작은 크기의 패킷을 주고 받기만 하면 되는 애플리케이션이나 시간적 연속성이 중요할 때 사용한다. 예를 들어, DNS나 DHCP와 같은 서비스 그리고 음성 통화나 동영상 배포와 같이 시간적인 연속성이 중요한 애플리케이션이 있다.

 

추가 용어

1. 패킷 

 통신을 위해 데이터를 작게 분할한 덩어리. 이와 같은 패킷으로 분할하여 송수신하는 통신 방식을 패킷 통신.

큰 데이터를 그대로 보내면 회선을 점유하게 되므로 작게 분할하여 흘려보내어 통신 회선을 점유 하지 않도록 한다.

 

2. 서브넷 마스크

서브넷이란 본래는 하나여야 하는 네트워크를 작은 단위로 분할한 것으로, 서브넷 마스크는 이 서브넷을 표현하기 위한 값이다. 

 네트워크가 대규모가 되면 단일 네트워크로서 관리하기가 어렵다. 특히, 브로드캐스트라는 네트워크 전체를 향해 발신하는 데이터 전송이 발생한 경우 본래 필요가 없는 범위까지 쓸데없이 회선을 사용해 버리기 때문에 이는 네트워크 전체의 효율 악화로 이루어지기 때문에 이를 막는 방법으로 사무소나 사업부 단위로 네트워크를 논리적으로 분할한다. 

 

주소 부분의 몇 비트를 네트워크 주소부로 다시 정의함으로써 단일 네트워크 아래를 서브넷으로 구분한다.

예를 들어 172.16.0.0 ~ 172.16.255.255 라는 범위의 IP주소를 사용하는 경우 상위 16비트 까지가 네트워크 주소부에 해당한다. 

 

172.16. (네트워크 주소부 )   + 0. ~255. ( 서브넷부) + 0 ~ 255 ( 호스트 주소부 ) 

 

위처럼 구분해서 나눌 수 있다.