http (1)

IP 패킷 정보

출발지 IP, 목적지 IP, 기타...

IP 프로토콜의 한계

비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
비신뢰성: 중간에 패킷이 소실되거나 순서대로 안갈 수 있음
프로그램 구분: 같은 IP를 사용하는 서버에서 통신하는 앱이 둘 이상이면 구분 불가능

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

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

4계층에서의 데이터 전달구조

  1. 프로그램이 Hello, world! 메세지 생성
  2. SOCKET 라이브러리를 통해 전달
  3. TCP 정보 생성, 메세지 데이터 포함
  4. IP 패킷 생성, TCP 데이터 포함

TCP 특징

전송제어 프로토콜(Transmission Control Protocol)

연결지향 - TCP 3 way handshake(가상 연결)
데이터 전달 보증
순서 보장
신뢰할 수 있는 프로토콜
현재는 대부분 TCP 사용

TCP 3 way handshake

SYN: 접속 요청
ACK: 요청 수락

  1. SYN
  2. SYN + ACK
  3. ACK(데이터 전송)

데이터 전달 보증

  1. 데이터 전송
  2. 데이터 잘 받았음

순서 보장

  1. 패킷1, 패킷2, 패킷3 순서로 전송
  2. 패킷1, 패킷3, 패킷2 순서로 도착
  3. 패킷2부터 다시 보내라

UDP 특징

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

하얀 도화지에 비유
연결지향 X
데이터 전달 보증 X
순서 보장 X
단순하고 빠름
IP와 거의 같다, PORT와 체크섬 정도만 추가
애플리케이션에서 추가작업 필요

PORT

같은 IP 내에서 프로세스 구분
0 ~ 65535: 할당가능
0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음

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

DNS

도메인 네임 시스템(Domain Name System)

IP는 기억하기 어렵다
123.123.123.23??
IP는 변경될 수 있다
전화번호부
도메인 명을 IP주소로 변환

ex) www.google.com IP 200.200.200.2

profile
클린코드와 UX를 생각하는 비즈니스 드리븐 소프트웨어 엔지니어입니다.

0개의 댓글