개발 공부/http

인터넷 네트워크(인터넷통신, IP, TCP/UDP, PORT, DNS)

Summer_berry 2023. 2. 12. 23:52

http 학습을 위한 인터넷 네트워크 기본 상식알아보기

 

1. 인터넷 통신

복잡한 인터넷 망을 통해서 메세지를 전송하기

 

2. IP(인터넷 프로토콜)

  • IP 주소 부여 (ex: 100.100.100.1)
  • 지정한 IP주소에 데이터 전달
  • 패킷이라는 통신 단위로 데이터 전달
    • IP 패킷 정보: 출발지 IP, 목적지 IP, 기타..
  • IP프로토콜의 한계
    • 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
    • 비신뢰성: 중간에 패킷이 사라지거나 패킷이 순서대로 안올 수 있음
    • 프로그램 구분: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 프로그램 구분 어려움

3. TCP / UDP

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

애플리케이션 계층 - HTTP, FTP

전송 계층 - TCP, UDP

인터넷 계층 - IP

네트워크 인터페이스 계층- LAN드라이버, LAN장비

 

TCP/IP 패킷 정보

IP 패킷: 출발지 IP, 목적지 IP, 기타..

TCP 세그먼트: 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보..

 

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

  • 연결지향 - TCP 3 way handshake (가상 연결)
    1.  클라이언트 -> SYN(접속요청) -> 서버
    2.  클라이언트 <- SYN+ACK(접속요청+요청수락) <- 서버
    3.  클라이언트 -> ACK(요청수락) -> 서버
  • 데이터 전달 보증
    • 클라이언트에서 데이터를 전송하면 서버에서 데이터를 받았다고 응답 보내줌
  • 순서 보장
    • 서버에 순서가 잘 못오면 잘못 온 부분부터 다시 보내달라고 클라이언트한테 요청함
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

 

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

  • 기능이 거의 없음
  • IP와 거의 같고 추가로 PORT, 체크섬 정도만 추가됨
  • 애플리케이션에서 추가 작업 필요
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름

 

4. PORT

  • 한번에 둘 이상 연결 하려면? port 를 나눠서 설정함.
  • port: 같은 IP 내에서 프로세스 구분
    • ex ) IP가 아파트고 PORT는 몇동 몇호
  • 0~65535 할당 가능
  • 0 ~ 1023: 잘 알려진 포트, 사용하지 않는것이 좋음
    • FTP- 20,21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

 

5. 도메인 네임 시스템 (DNS: Domain Name System)

  • IP는 기억하기 어렵고, 변경 될 수 있어서 사용하는게 DNS
  • 전화번호부
  • 도메인 명을 IP주소로 변환

 

'개발 공부 > http' 카테고리의 다른 글

HTTP 활용 - HTTP API 설계 예시  (0) 2023.04.09
HTTP 메서드 활용 - 클라이언트에서 서버로 데이터 전송  (0) 2023.04.09
HTTP 메서드  (0) 2023.04.09
HTTP기본  (0) 2023.03.11
URI이란  (0) 2023.03.11