TCP & UDP / PORT / DNS

HYl·2022년 3월 3일
0

인터넷 네트워크

목록 보기
2/2

  • 응용계층
    • 웹 브라우저, 네트워크 게임, 채팅 프로그램, SOCKET 라이브러리 등

채팅 프로그램에서 Hello world 라는 메시지를 생성하는 과정

  1. HTTP : 전송 데이터
  2. TCP : 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등
  3. IP : 출발지 IP, 목적지 IP 등
  4. Ethernet frame : LAN 카드에 등록된 mac address 등 물리적인 요소의 정보가 포함되어져 있다.
    1. HTTP
    • (1) HTTP : 프로그램이 Hello world 라는 메시지 생성
    • (2) Socket 라이브러리를 통해 전달
    1. TCP
    • (1) TCP 정보 생성, 메시지 데이터 포함
    1. Ip
    • (1) IP 패킷 생성, TCP 데이터 포함
    1. Ethernet frame

TCP 특징 ( 전송 제어 프로토콜, Transmission Control Protocol )

  • 연결지향 - TCP 3 way handshake (가상 연결, 물리적으로 연결 X)
  • 데이터 전달 보증
      1. 데이터 전송 (클라이언트 -> 서버)
      1. 데이터 확인 (서버 -> 클라이언트)
  • 순서 보장
      1. 패킷1, 패킷2, 패킷3 순서로 전송
      1. 패킷1, 패킷3, 패킷2 순서로 도착 (클라이언트 -> 서버)
      1. 패킷2부터 순서 보장되게 재요청 (서버 -> 클라이언트)
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

TCP 3 way handshake ?

( SYN : 접속 요청 / ACK : 요청 수락 )

    1. 클라이언트가 서버에 SYN 을 보낸다
    1. 서버가 클라이언트에 SYN + ACK 을 보낸다
    1. 클라이언트가 서버에 ACK 를 보낸다
      => 참고, ACK 와 함께 데이터 전송 가능
    1. 데이터 전송

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

  • 하얀 도화지에 비유 (기능이 거의 없음)
  • 연결지향 - TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • 정리
    • IP와 거의 같다. +PORT +체크섬 정도만 추가
    • 애플리케이션에서 추가 작업 필요

PORT ?

  • IP 만으로는 어디서 필요한 패킷인 알수가 없기 때문에 PORT를 사용한다. 서버안에서 돌아가는 애플리케이션을 구분할 때 사용한다.

규칙

0 ~ 65535 : 할당 가능
0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음TELNET - 23HTTPS - 443

  • HTTP - 80
  • HTTPS - 443
  • FTP - 20,21
  • TELNET - 23

DNS ?

도메인 네임 시스템 DNS(Domain Name System)
IP는 길고 어려운데다가 변경될 수 있기 때문에 DNS를 사용한다. 도메인명을 IP 주소로 변환한다.


인터넷 네트워크 정리

  1. 인터넷 통신
  2. IP (Internet Protocol)
  • 복잡한 인터넷 망에서 message를 보내기 위해서 IP 가 있어야 한다.
  • But, IP만으로는 message가 도착했는지 신뢰하기 어렵고, PORT라는 개념도 없다.
    ( + message의 순서가 꼬일 수 있다. )
  1. TCP, UDP
  • 2번의 문제점들을 TCP 프로토콜이 해결
  • UDP는 거의 IP와 동일하나, PORT 정도만 추가되는 것. 거의 백지 상태
    필요한 상황 시, UDP 프로토콜 위에서 애플리케이션 기능을 확장할 수 있다.
  1. PORT
  • 같은 IP 안에서 통신하는 애플리케이션을 구분하기 위하여 사용한다.
  • ex ) IP: 아파트, PORT: 101동 403호
  1. DNS
  • IP는 외우기 어렵고, 변하기 쉬운 반면에 도메인명을 등록해서 사용할 수 있도록 도와줌.

profile
꾸준히 새로운 것을 알아가는 것을 좋아합니다.

0개의 댓글