IT/Others

인터넷 네트워크

김 정 환 2022. 2. 18. 10:54
반응형

인터넷 네트워크에 대해서 알아보겠습니다. 인터넷 통신을 위해서 크게 아래 4가지에 대해서 알아보겠습니다.

IP
TCP, UDP
PORT
DNS

 

IP

클라이언트와 서버가 통신하기 위해서는 인터넷의 여러 노드들을 거쳐야 합니다. 노드들은 IP 주소를 보고 다른 노드로 패킷을 보내줍니다. 

 

패킷을 그냥 보내기에는 몇 가지 문제가 발생합니다. 

1. 서버가 켜져있지 않은데 패킷을 보낸다면

2. 패킷이 중간에 유실된다면

3. 패킷의 순서가 엉망이라면

4. 한 IP에서 여러 애플리케이션이 동작중이라면

 

이러한 문제는 TCP, PORT로 해결할 수 있습니다.

 

 

TCP, UDP

TCP (Transmission Control Protocol)

TCP는 4계층에서 전송 계층에 해당합니다. 

애플리케이션에서 보낸 메시지를 Socket을 통해 TCP층으로 보내줍니다. TCP층에서는 메시지를 감싸서 세그먼트로 만들어 줍니다. 세그먼트는 네트워크층으로 보내져서 패킷으로 만들어지고 LAN 카드를 통해서 보내집니다.

TCP 헤더에는 순서, 전송 제어, 검증 정보 등이 담겨져 있습니다. 이것들을 이용해서 이전에 문제가 되었던 순서, 데이터 유실을 방지할 수 있습니다.

 

또 하나, TCP의 특징으로 3-way handshake가 있습니다. 클라이언트에서 서버로 연결해 달라는 메시지(sync)를 보냅니다. 서버는 클라이언트에게 응답(ack)과 서버 자신도 연결하겠다는 메시지(sync)를 보냅니다. 클라이언트는 응답(ack)과 데이터 일부를 보내기 시작합니다. 이렇게 3번의 의사를 물어보는 것으로 연결을 맺는 것이 3-way handshake입니다.

 

UDP (User Datagram Protocol)

UDP는 TCP에서 몇 가지 기능을 뺀 것과 비슷합니다. 3-way handshake가 없고, 데이터 유실을 신경 쓰지 않고, 순서도 신경쓰지 않습니다. 이렇게 몇 가지를 빼니 데이터가 단순해서 빠르게 전송할 수 있습니다. 거의 IP와 비슷합니다. 

 

TCP가 인터넷 통신에서 대부분을 차지하고 있는데, 최근에는 UDP를 사용하는 방법을 찾고 있다고 합니다. 애플리케이션에서 데이터 순서나 유실을 해결할 수 있는 처리를 하고, UDP로 빠르게 보내려는 전략이지 않을까 생각합니다.

 

 

PORT

하나의 컴퓨터에서 여러 작업을 하는 경우가 있습니다. 분명 같은 IP인데 데이터들은 어떻게 알맞은 애플리케이션으로 들어가는 것일까요. 그 이유는 port입니다. ip에 port를 붙여서 어느 애플리케이션으로 가야하는지 알려주고 있습니다.

port는 0~65535까지 사용할 수 있습니다. 0~1023은 잘 알려진 포트라서 사용하지 않은 것이 좋습니다. 아래 표는 대표적인 포트를 보여줍니다.

사용 port
FTP 20, 21
TELNET 23
HTTP 80
HTTPS 443

 

 

DNS (Domain Name System)

인터넷 통신에서 ip로 어느 곳을 갈지 결정한다고 하지만, 사람은 숫자 12자리를 기억하기 힘듭니다. 우리가 223.130.200.107를 입력해서 네이버에 가지 않고 naver.com으로 네이버에 가는 것처럼 말입니다. 이렇게 도메인을 관리해주는 것을 DNS라고 합니다. DNS 서버의 테이블을 보면 '도메인 명 : ip' 이렇게 맵핑이 되어 있습니다. 이렇게 ip가 관리가 되면 좋은 점이 하나 있습니다. ip의 주소가 바뀌더라도 특별히 해줄 것을 없습니다. 테이블에서 바뀐 ip 주소만 넣어주면 되기 때문입니다.

 

 

끝.

반응형