인터넷 통신 (Internet Network)

god1hyuk·2022년 11월 6일
0

Network

목록 보기
1/3
post-thumbnail

해당 포스트는 <김영한>님의 인프런 강의 '모든 개발자를 위한 HTTP 웹 기본 지식'을 토대로 공부한 내용을 정리하였습니다.

(!) 강의 자료에서 캡쳐한 이미지는 출처를 기재하였습니다.


인터넷 프로토콜 스택은 4계층으로 구성된다.

TCP/IP 4계층

  • 애플리케이션 계층 : 프로세스간의 통신을 위해 설계된 계층
  • 전송 계층 : 송신자와 수신자를 연결하는 서비스에 대한 정보를 담는 계층
  • 인터넷 계층 : 패킷(Packet)을 목적지로 전송하기 위한 정보를 담는 계층
  • 네트워크 인터페이스 계층 : 물리적인 전송을 위한 계층

(!) TCP/IP 5계층 이라고 하는 경우도 있는데 네트워크 인터페이스 계층의 물리적(Physical) 계층에 데이터링크(Data Link) 계층을 포함한 것이다. 실질적으로는 4계층을 사용한다.

  • 패킷 (Packet = Package + Bucket) : 송신지 IP, 수신지 IP, 전송 데이터 등을 담고 있는 통신 단위

오늘은 인터넷 계층(2계층)의 IP와 전송 계층(3계층)의 TCP/UDP, 그리고 애플리케이션 계층(4계층)의 DNS에 대해 다루어 본다.

  1. IP (Internet Protocol)
  2. TCP (Transmission Control Protocol)
  3. UDP (User Datagram Protocol)
  4. DNS (Domain Name System)

1. IP (Internet Protocol)

  • IP의 특징 및 역할
    • 지정한 IP 주소(IP Address)에 데이터 전달
    • 패킷(Packet) 으로 데이터 전달

IP만으로는 이러한 한계점이 생긴다.

IP의 한계점 1

  1. 비연결성
    • 패킷을 받을 대상(수신지 IP)이 없거나 서비스 불능 상태여도 패킷이 전송될 가능성 있음 (대상 서버의 상태가 인지 불가)
  2. 비신뢰성
    • 전송 도중 문제가 발생 될 경우 패킷이 소실될 위험이 있음
    • 패킷이 순서대로 오지 않을 가능성 있음
  3. 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통시하는 애플리케이션이 둘 이상이면 구분이 어려움

이러한 인터넷 계층(IP)의 한계점을 전송 계층(TCP/UDP)에서 보완을 해준다.

2. TCP (Transmission Control Protocol, 전송 제어 프로토콜)

  • TCP의 역할

    • IP의 패킷(Packet) 내부에 송신지 PORT, 수신지 PORT, 전송 제어 정보, 순서 정보, 검증정보를 담은 TCP 세그먼트(TCP Segment)를 포함하여 전송

  • PORT

    • IP가 목적지인 Server라면, PORT는 Server에서 구동되는 Application의 구분점

    • 0 ~ 65535 할당 가능

    • 0 ~ 1023 잘 알려진 PORT, 사용하지 않는 것이 좋음

      • FTP : 20, 21
      • TELNET : 23
      • HTTP : 80
      • HTTPS : 443
    • 최종적으로 전송되는 패킷(Packet)은 이러한 형태로 기억하면 된다.

TCP의 3가지 특징

  1. 연결지향 : TCP 3 way handshake (가상 연결, 논리적 연결)
  • SYN (Synchronize) : 접속 요청
  • ACK : 요청 수락

(!) 3단계(ACK)에서 데이터를 ACK와 함께 전송 가능

  1. 데이터 전달 보증

  1. 순서 보장
  • 패킷 도착 순서가 맞지 않을 경우, 순서가 맞지 않는 패킷 부터 무시하고 해당 순서의 패킷 재요청
  • 신뢰할 수 있는 프로토콜 사용
  • 현재는 대부분 TCP 사용

3. UDP (User Datagram Protocol, 사용자 데이터그램 프로토콜)

  • UDP의 특징

    • 기능이 거의 없는 백지 상태
    • 데이터 전달 및 순서가 보장되지 않지만, 단순하게 빠름
    • IP와 거의 같은데 PORT, Checksum가 추가 됨
    • 애플리케이션에서 추가로 확장 및 커스터마이징 가능

IP의 한계점을 TCP로 보완을 할 수 있지만 또 다른 면에서 한계점이 있다.

IP의 한계점 2

  1. 기억하기 어려움
    • IP 주소를 외우는 것은 어려우며 비효율적
  2. 변경될 수 있음
    • 신규로 IP가 변경이 되면 해당 서버에 접근이 어려움

이와 같은 한계점에는 DNS가 해결책이 될 수 있다.


4. DNS (Domain Name System)

  • DNS의 특징 및 역할

    • 전화번호부 같은 개념의 Server 제공
    • Domain 명을 IP 주소로 변환
  • DNS 사용

    1. Client 에서 Domain 을 구매 또는 등록 후 DNS Server 에 요청을 하면 해당 Domain 을 IP 주소로 변환하여 Client 로 응답
    2. DNS Server 로 부터 응답 받은 IP 주소를 통하여 Server 접속

0개의 댓글