콘솔워크

#1. 인터넷 네트워크 본문

프로그래밍/http

#1. 인터넷 네트워크

콘솔워크 2021. 7. 5. 15:42
반응형

인터넷 네트워크

인터넷 통신

인터넷은 다양한 컴퓨터가 존재하기 때문에 명확한 주소를 통해 데이터를 전달한다.

IP(인터넷 프로토콜)

  • 인터넷은 IP주소를 통해 데이터를 전송한다. 데이터는 패킷이라는 단위로 전송된다.

IP 프로토콜의 한계

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 중간에 패킷이 사라지면? >> TCP 공부
    • 패킷이 순서대로 안오면? >> TCP 공부
  • 프로그램 그분
    •  같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? >> Port 공부

TCP

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

 

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

1. 애플리케이션 계층 (HTTP, FTP)

2. 전송계층 (TCP, UDP)

3. 인터넷 계층 (IP)

4. 네트워크 인터페이스 계층

  1. 사용자가 응용프로그램에서 전달할 데이터 생성
  2. Socket 라이브러리를 통해 전달
  3. TCP 정보 생성, 메시지 데이터 포함
  4. IP 패킷 생성, TCP 데이터 포함

메모)

- IP 패킷은 택배 박스라고 보면 됨 (배송지정보가 붙어있음)

- TCP 데이터는 조립설명서라고 보면됨. 전달받은 데이터를 TCP 계층에서 순서를 조립하고 데이터에 대한 보증을 한다.

4. IP 패킷 생성, TCP 데이터 포함

TCP의 특징

 

- 연결 지향 - TCP 3 way handshake (가상연결) - 논리적인 연결임. 하나의 약속임 물리적으로는 연결 안되어있음.

  • 일단 Client에서 SYN을 요청해서 살아있는지 물어봄.
  • SYN + ACK - 서버에서 연결 수락함
  • ACK - 3.ACK와 함께 데이터 전송 가능

  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

UDP

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

  • IP와 거의 같다 + Port + 체크섬 정도만 추가
  • 애플리케이션에서 추가 작업필요
  • 검증 및 순서를 보장하지 않으므로 (기능 최소화) 단순하고 빠르다.

Port

같은 IP(서버) 내에서 프로세스 구분

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

DNS

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

  • IP는 기억하기 어려움
  • IP는 변경될 수 있음

DNS 서버에 IP를 보내면, IP에 해당하는 도메인 네임을 서버에서 전달해줌. 

그러면 이 IP를 가지고 HTTP 통신을 한다.

반응형