ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인터넷 네트워크
    Computer Science/Computer Network 2022. 3. 22. 01:20
    728x90

     

    인터넷 통신


    단거리 통신의 경우 메시지를 요청해서 서버에서 응답을 한 후 결과를 바로 출력할 수 있으나, 메시지를 전달해야 하는 호스트가 멀리있을 때는 인터넷의 여러 노드를 거쳐서 서버로 넘어가 응답을 얻어내야하는데, 이때 통신할 때 사용되는 규칙이 IP(Internet Protocol)이다.

     



    IP(Internet Protocol)

    복잡한 인터넷 망에서 통신을 하기 위한 최소한의 통신 규약으로 IP 주소를 통해 통신한다. 지정한 IP 주소에 데이터를 전달하고 패킷이라는 통신 단위로 데이터를 전달한다. 

     

     

    IP 패킷 정보 : 출발지 IP, 목적지 IP, 전송 데이터

     

     

    인터넷 노드를 통해 목적지 주소를 보고 서버에서 전달받게 되고 서버에서도 응답이 확인되었다는 정보와 함께 클라이언트에 패킷을 전달한다.

     


    IP 프로토콜의 한계 


    - 비연결성


    패킷을 받을 대상이 없거나 서비스를 이용할 수 없는 상태여도 패킷을 전송한다.

     


    - 비신뢰성

     

    중간에 패킷이 사라지거나 패킷이 순서대로 오지않는 경우(패킷의 용량이 커질 때 패킷을 쪼게서 보내는데 순서가 올바르지 않다면 문제 발생) 통신에 문제가 발생할 수 있다.

     

    패킷이 소실되는 경우

     

     

    패킷을 전달하는 순서가 바뀐 경우



    - 프로그램 구분


    같은 IP를 사용하는 서버에서 통신하는 앱(프로세스)이 두 개 이상일 때 구분하는 것에 대한 문제가 발생한다.

     


    클라이언트에서 데이터를 요청하는 과정 (IP 통신의 한계점을 해결해주는 TCP)

     


    1. 사용자나 프로그램에서 메시지를 생성한 후 소켓 라이브러리를 통해 메시지가 운영체제에 전달된다.

    2. 운영체제는 메시지 데이터를 포함하여 TCP 정보를 생성하고, TCP 데이터를 포함해 IP 패킷을 생성한다.

    3. IP 패킷을 가지고 LAN 카드에 연결된 인터넷을 통해 서버에 요청한다.

     

     

    TCP(Transmission Control Protocol)

    IP에서 발생했던 여러 한계점들을 해결해주어 클라이언트/서버 통신에 IP와 같이 쓰이는 전송 제어 프로토콜이다. TCP/IP 패킷에는 IP 패킷에 있는 정보들뿐만 아니라 TCP 세그먼트가 담겨 출발지 PORT, 목적지 PORT, 전송 제어, 순서와 같은 정보가 담겨있다.

     

    TCP의 특징


    연결지향(3 way handshake, 가상 연결 방식)

    SYN으로 접속을 요청하고 서버측에서 ACK로 요청 수락을 한뒤 ACK와 함께 데이터를 전송하거나 ACK로 응답을 보낸 후 데이터를 전송한다.


    데이터 전달 보증과 순서 보장

    데이터를 전송해서 서버에서는 데이터를 잘 받았다는 신호를 보내며, 순서의 경우 패킷을 여러 개 전송할 때 순서가 잘못됐다면 서버에서 재전송하라는 신호를 보내 클라이언트는 다시 그 패킷부터 전송하게 되어 순서를 보장해준다.

     

    데이터 전달 보증

     

    패킷 순서 보장



    신뢰할 수 있는 프로토콜

    대부분의 통신망은 이더넷 기반의 TCP/IP를 사용하는 네트워크이다.

     

     

    동일 서버에 다수 프로세스는 어떻게 구분하는 것인가? (PORT의 필요성)


    같은 IP를 사용하는 서버에서 연결해야 하는 프로세스가 두 개 이상일 때 프로세스들을 PORT 번호를 통해 구분해준다. PORT와 달리 IP는 목적지 서버만 구분해준다. 마치, IP는 한 아파트이고 PORT는 동일한 아파트 내 호수로 비유할 수 있을 것이다.


    PORT의 종류
    0 ~ 1023 : 잘 알려진 포트로 사용하지 않는 것이 좋다. (FTP- 20, 21 / TELNET - 23 / HTTP - 80 / HTTPS- 443)
    1024 ~ 65535 : 할당할 수 있는 포트이다.

     


    DNS(Domain Name System)

     

    통신을 하는 데 있어 IP 주소로는 기억하기 어렵고 변경될 수 있다는 점에서 도메인 명을 등록하고 IP주소로 변환해 통신을 할 수 있게 해주는 시스템이다.

     

    가령, 요청하고자 하는 서버가 구글이라 할 때 google.com 이라는 도메인을 DNS 서버에서 IP주소로 변환해 응답해주고 본 서버로 접속해서 통신을 가능하게 만든다.


    + UDP(User Datagram Protocol) 

    OSI 7계층 중 TCP와 동일 계층인 전송 계층에서 사용되는 프로토콜이며 데이터 전달 및 순서가 보장되지 않지만 단순하고 빠른 프로토콜이다.

     

    UDP는 연결지향적이지 않고, IP와 비슷한 맥락으로 비신뢰성의 특징을 갖고있다. PORT와 체크섬 정보만 추가된다.

    728x90

    'Computer Science > Computer Network' 카테고리의 다른 글

    웹 애플리케이션의 이해  (0) 2022.04.12
    HTTP의 메소드  (0) 2022.04.06
    HTTP의 기본  (0) 2022.03.31
    URI와 웹 브라우저의 요청 및 응답  (0) 2022.03.23

    댓글

Designed by Tistory.