ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HTTP] TCP/IP, DNS 개념 알아보기
    HTTP 2021. 6. 27. 16:04

    TCP (Transfer Control Protocol)

    : 트랜스포트 계층에 속하는 프로토콜이며, 신뢰성 있는 바이트 스트림 서비스를 제공한다.

    큰 데이터를 보내기 쉽게 TCP 세그먼트라고 불리는 단위 패킷으로 작게 분해하여 관리하는 것을

    말하고, 상대방에게 정확하게 도착했는지 확인하는 역할을 담당한다.

    상대방에게 확실하게 데이터를 보내기 위한 방법으로 TCP는 쓰리웨이 헨드셰이킹 (Three way handshaking)

    이라는 방법을 사용하고 있다. 이 방법은 패킷을 보내고 나서 바로 끝내는 것이 아니라, 보내졌는지 여부를 상대방에게

    확인하러 가는 방법으로, 이것은 'SYN', 'ACK' 라는 TCP 플래그를 사용하며, 송신측에서는 최초 'SYN' 플래그로 상대방에게 접속함과

    동시에 패킷을 보내고, 수신측에서는 'SYN/ACK' 플래그로 송신측에 접속함과 동시에 패킷을 수신할 사실을 전한다. 마지막으로

    송신측이 'ACK' 플래그를 보내 패킷 교환이 완료 되었음을 전한다. 이 과정에서 어디선가 통신이 도중에 끊어지면 TCP는 그와 동시에

    같은 수순으로 패킷을 재전송한다.

     

     

    IP (Internet Protocol)

    : 네트워크 계층에 속하는 프로토콜이며, 개개의 패킷을 상대방에게 전달하는 역할을 한다.

    IP주소는 MAC (Media Access Control Address) 주소에 의해서 통신을 하고, 인터넷에서

    통신 상대가 같은 랜선 내에 있을 경우는 적어서 여러 대의 컴퓨터와 네트워크 기기를 중계해서 상대방에게 

    도착한다. 그렇게 중계하는 동안에는 다음으로 중계할 곳의 MAC의 주소를 사용하여 목적지를 찾아간다.

    이때, ARP (Address Resolution Protocol) 프로토콜이 사용되며 ARP는 주소를 해결하기 위한 프로토콜

    중 하나인데, 수신자의 IP 주소를 바탕으로 MAC 주소를 조사할 수 있다.

     

    DNS (Domain Name System)

    : HTTP와 같이 응용 계층 시스템에서 도메인 이름과 IP 주소 이름 확인을 제공한다.

    컴퓨터는 IP 주소와는 별도로 호스트 이름과 도메인 이름을 붙일 수 있다.(ex: www.naver.com)  사람은 숫자를

    나열하는 IP 주소를 지정하는 것보다 영어나 숫자 등으로 표기해 컴퓨터의 이름을 지정하는 것이 보다 인간에게 친숙하다.

    하지만 컴퓨터는 숫자를 나열하는 방법을 더 선호하고, 이 문제를 해결하기 위해 DNS가 사용된다.

    DNS는 도메인명에서 IP 주소를 조사하거나 반대로 IP 주소로부터 도메인명을 조사하는 서비스를 제공한다.

     

     

    위 TCP/IP, DNS를 HTTP통신 일련의 과정으로 간단하게 살펴보면 이렇다.

     

    1. 클라이언트가 http://hong.com/text 요청
    2. DNS가 http://hong.com/text 요청에 맞는 IP를 반환
    3. HTTP가 담당 웹 서버에 보낼 HTTP 메시지 작성
    4. TCP가 HTTP 메시지를 통신하기 쉽도록 패킷으로 분해, 일련번호를 부여
    5. IP가 상대가 어디에 있는지 찾아 중계해 가면서 배송
    6. TCP가 상대방(클라이언트)로부터 패킷을 수신 및 도착한 패킷을 일련번호를 보고 조립
    7. HTTP가 웹 서버에 대한 리퀘스트 내용을 처리

     

    참고자료

    • 우에노 센, 「그림으로 배우는 HTTP & Network Basic」, 영진닷컴 (2015)

    댓글