[HTTP] 인터넷 네트워크

BoongDev·2021년 9월 17일
0

네트워크

목록 보기
2/5

✔ IP

인터넷 프로토콜 역할을 합니다

  • 지정한 IP 주소(IP Address)에 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달


IP 패킷 정보에는 출발지 IP, 목적지 IP, 기타... 안에 전송데이터를 포함합니다

✔ IP 프로토콜의 한계

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 중간에 패킷이 사라질 수 있다.
    • 패킷이 순서대로 오지 않을 수 있다.
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 어떻게 구분할 것인가

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

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

✔ TCP, UDP

앞서 IP 프로톨콜의 한계 점을 보완하기 위해 TCP 가 세상에 나왔습니다.

TCP 패킷의 형태 입니다. 앞서 IP 패킷 안에 좀 더 자세한 정보를 담은 TCP 세그먼트를 담아 통신합니다.

✔ TCP의 특징

  • 연결지향 - TCP 3 way handshake(가상연결) (=IP 프로토콜 비연결성 보완)
  • 데이터 전달 보호 (=IP 프로토콜 비신뢰성 보완)
  • 순서 보장 (=IP 프로토콜 비신뢰성 보완)

TCP 3 way handshake - 논리적 연결

클라이언트와 서버간에 신호를 보내어 연결이 되었는지 확인합니다.
1. 클라이언트 SYN 신호 -> 서버
2. 서버 SYN 신호 수신 시 ACK + SYN 신호 -> 클라이언트
3. 클라이언트 SYN + ACK 신호 수신 후 ACK 신호 -> 서버
4. 연결 확인 데이터 전송
- SYN = 접속 요청
- ACK = 요청 수락
현재는 최적화가 되어 마지막 클라이언트에서 SYN+ACK 수신 후 데이터를 포함하여 전송한다.

✔ 순서 보장

로직에 따라 다르지만 순서가 틀린 데이터를 받으면 틀려진 순서부터 다시 전송 요청합니다.

✔ 데이터 전달 보증

클라이언트가 데이터 전송을 하고 서버에서는 데이터를 잘 받았다는 신호를 보냅니다.

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

  • 하얀 도화지에 비유(기능이 거의 없습니다)
  • 연결지향 - TCP 3way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름

  • IP와 거의 같다. +PORT +체크섬 정도만 추가
    - PORT = 용도에 따라 구분이 가능하다.
  • 애플리케이션에서 추가 작업 필요
  • HTTP 3 로 오면서 뜨고 있는 중 (뜨거운 감자)

✔ PORT

한번에 둘 이상 연결해야하는 경우 해결법

TCP/IP 패킷 정보에 보면 출발지(IP, PORT), 목적지(IP, PORT) 담겨져 있다.
클라이언트에서 사용하는 애플리케이션과 맞는 서버는 IP와 PORT 정보를 통해서 같은 IP 내에서 프로세스 구분을 한다.
출발지(ip,port)100.100.100.1 port 8090 을 받은 서버는 도착지(ip, port) 정보로 설정하여 돌려서 전송해주면 된다.

주의

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

✔ DNS (Domain Name System)

IP는 기억하기 어렵고 변경될 수 있기 때문에 DNS 가 등장한다.

간단히 정의 하면

  • 전화번호부
  • 도메인 명을 IP 주소로 변환

DNS 사용
1. 도메인 명(ex: google.com)을 DNS 서버에 요청
2. DNS 서버가 도메인 명에 해당하는 IP 반환
3. 반환 된 IP 주소로 접속

... 다음부터는 작은 챕터별로 나눠서 정리해야겠다...😂

profile
욕심 많은 주니어 개발자입니다.

0개의 댓글