인터넷 네트워크

maxxyoung·2021년 7월 4일

인터넷 통신


클라이언트와 서버가 통신을 하여 데이터를 주고 받는다. 그 사이에는 인터넷이 있다.

IP(인터넷 프로토콜)

인터넷 프로토콜 역할

  • 지정한 IP주소에 데이터 전달
  • 패킷이라는 통신 단위로 데이터 전달(클라이언트 -> 서버, 서버 -> 클라이언트)

IP 패킷 정보

  • 출발지 IP, 목적지 IP, 전송 데이터 등등

IP프로토콜의 한계

  • 비연결성
    패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    중간에 패킷이 사라질 수 있음
    패킷이 오는 순서를 보장할 수 없음
  • 프로그램 구분
    같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 두 개 이상일 경우 구분 불가능

TCP, UDP

인터넷 프로토콜 스택의 4계층


애플리케이션 계층 - HTTP, FTP
전송 계층 - TCP, UDP
인터넷 계층 - IP
네트워크 인터페이스 계층

프로토콜계층


1. 프로그램이 HELLO, WORLD 메시지 생성
2. SOCKET 라이브러리를 통해 전달
3. TCP 정보 생성, 메시지 데이터 포함
4. IP 패킷 생성, TCP 데이터 포함
5. 물리 정보(MAC ADDRESS 같은) 정보를 담아 패킷 전송

TCP/IP 패킷 정보


TCP/IP 패킷에 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증 정보 등을 담아 보냄

TCP(Transmission Control Protocol)특징

  • 연결지향 - TCP 3 way handshake(가상연결)
    물리적 연결이 아닌 논리적 연결
  • 데이터 전달 보증
    클라이언트가 데이터를 전송하고 서버로부터 데이트를 잘 받았다는 응답을 받음
  • 순서 보장
    순서가 잘못됐을 경우 클라이언트로부터 잘못된 패킷부터 다시 보내라고 요청함
  • 신뢰할 수 있는 프로토콜
  • 현재 대부분 TCP 사용

UDP(User Datagram Protocal)특징

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결지향하지 않음(TCP 3 way handshake X)
  • 데이터 전달 보증X
  • 순서보장X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • IP와 거의 같음 +PORT, 체크섬 정도만 추가
  • 애플리케이션에서 추가작업필요
  • 요즘은 다시 UDP를 많이 쓰려고함(자세한 이유는 다시 알아봐야함)

PORT

  • 같은 ip 내에서 프로세스 구분(IP가 아파트이면 PORT는 몇 동 몇 호)
  • 0 ~ 65535 할당 가능
  • 0~ 1023 잘 알려진 포트, 사용하지 않는 것이 좋음
    FTP - 20, 21
    TELNET - 23
    HTTP - 80
    HTTPS - 443

DNS

  • 도메인 명을 IP 주소로 변환

본 글은 인프런 김영한님의 HTTP강좌를 토대로 작성하였습니다.

profile
오직 나만을 위한 글. 틀린 부분 말씀해 주시면 감사드립니다.

0개의 댓글