HTTP-인터넷 네트워크

Subin Cho·2023년 1월 5일
0

HTTP 웹 기본 지식

목록 보기
1/1

💖 IP


IP

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

IP 프로토콜의 한계

  • 비연결성(대상이 서비스 불능이어도 패킷을 전송함)
  • 비신뢰성(패킷 손실, 패킷 순서 보장 X)
  • 프로그램 구분(같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?)

💖 TCP


인터넷 프로토콜 4계층

TCP/IP 패킷 정보

TCP 특징

  • 연결 지향 - TCP 3way handshake (가상 연결, 개념적 연결 ) 물리적 연결[ex랜선연결]이 X 직접연결 : 클라이언트 <--> 서버 간접연결 : 클라이언트 <--> 네트워크 노드 <--> 서버
  • 데이터 전달 보장 (데이터 전송→ 잘 받았다고 응답)
  • 순서 보장
  • 신뢰할 수 있는 프로토콜

TCP 3 way handshake

  • 요청을 연결하기 위한 단계
    • SYN : 접속 요청, ACK: 요청 수락
    • 3.ACK 와 함께 데이터 전송 가능
  • 1, 2 단계 ⇒ 패킷의 해더 부분만 전송된다고 생각하면 된다
  • 3, 4 단계 ⇒ 헤더 + 데이터 부분이 함께 전송됨

TCP 4 way handshake

  • 연결을 해제(Connection Termination)하는 과정
    • Active close : 먼저 연락을 끊고자 하는 쪽
    • Passive close : 상대방
  • STEP 1 Client → Server : FIN 서버와 클라이언트가 연결된 상태에서 Client close()를 호출하여 ‘접속을 끊겠다'는 신호를 보낸다. 이때 클라이언트는 서버에게 연결을 종료한다는 FIN 패킷를 보낸다.
  • STEP 2 Server → Client : ACK SERVER 서버는 FIN을 받고, 확인했다는 ACK를 클라이언트에게 보내고 자신의 통신이 끝날때까지 기다린다 서버는 클라이언트에게 응답을 보내고 CLOSE_WAIT상태에 들어간다. 이 상태에서 아직 남은 데이터가 있다면 전송을 마친 후에 close()를 호출한다. Client 서버에서 ACK를 받은 후에 서버가 남은 데이터를 처리를 끝내고 FIN 패킷을 보낼 때까지 기다린다. (FIN_WAIT_2)
  • STEP 3 Server → Client : FIN SERVER 데이터를 모두 보냈다면, 종료에 합의 한다는 의미로 FIN 패킷을 보낸다. (LAST_ACK)
  • STEP 4 Client → Server : ACK Client 서버로부터 FIN 을 받고, 확인했다는 ACK 를 서버에 보낸다. 서버로부터 받지 못한 데이터가 있을 수 있으므로 TIME_WAIT 를 통해 기다린다. SERVER ACK를 받은 이후 소켓을 닫는다(Closed) Client TIME_WAIT 시간이 끝나면 클라이언트도 소켓을 닫는다.

💖 UDP


UDP 특징

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

  • 기능이 거의 없어서 하얀 도화지에 비유된다
  • TCP가 있는 기능 거의 없다(연결지향 X, 데이터 전달 X, 순서 보장 X)
  • 단순하고 빠른게 장점
  • IP와 기능 거의 비슷 + PORT + 체크섬 정도만 추가됨
  • 어플리케이션에서 추가 작업이 필요하다.
  • HTTP3 - UDP 프로토콜을 사용한다.

💖 PORT


PORT

같은 IP 내에서 프로세스를 구분

[IP- 아파트, PORT-몇동 몇호]

0~65545 할당 가능

0~1023 잘 알려진 포트, 사용하지 않는게 좋음

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

💖 DNS


DNS

Domain Name System

IP는 변경될 수 있고, 외우기 어렵다 → DNS 사용

도메인 명을 IP 주소로 변환(전화번호부 같은 느낌)



ref.

4 way handshake

https://velog.io/@averycode/네트워크-TCPUDP와-3-Way-Handshake4-Way-Handshake

profile
Web Developer

0개의 댓글