인터넷 네트워크

2023. 1. 22. 03:00Web/HTTP

인터넷 통신

클라이언트와 서버 사이에는 복잡한 노드로 이어진 인터넷 망이 있어 데이터를 안전하게 전송하기 위한 방법을 생각해봐야 한다. 

 

IP(인터넷 프로토콜)

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

- 클라이언트와 서버 사이에 있는 인터넷 망은 수많은 노드들로 구성되어 있는데, 그중에서 목적지 IP로 갈 수 있는 노드들을 통해 데이터가 전송된다.

 

# IP 프로토콜의 한계

- 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송(클라이언트는 대상 서버가 패킷을 받을 수 있는 상태인지 모르고 일단 패킷을 전송한다.)

- 비신뢰성 : 중간에 패킷이 사라질 수 있는 패킷 손실이나 패킷이 순서대로 오지 않는 순서 보장 문제가 발생(일반적으로 1500 바이트씩 끊어서 패킷 전송)

 

TCP 

ex) 채팅 프로그램 경우

1. 프로그램이 Hello,World! 메시지 생성

2. SOCKET 라이브러리를 통해 전달

3. TCP 정보 생성, 메시지 데이터 포함

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

- IP 패킷 정보 안에 TCP 세그먼트 정보가 있다.

 

# TCP 특징

- 연결지향 : TCP 3 way handshake(가상 연결)

1. SYN 

2. SYN + ACK 

3. ACK(데이터도 같이 전송 가능)

- 데이터 전달 보증 : 클라이언트가 서버로 데이터 전송시 서버에서 데이터 잘 받았다고 보내줌

- 순서 보장 : 패킷 순서를 바꿔서 보내라고 요청하면 순서를 바꿔서 다시 보냄

 

UDP

- TCP 3 way handshake X
- 데이터 전달 보증 X
- 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- IP와 거의 같다. +PORT +체크섬 정도만 추가

PORT 

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

 

- IP는 목적지 서버를 찾는 것이고 PORT는 서버 안에서 돌아가는 애플리케이션들을 구분한다.

- 패킷에서 IP+PORT 정보를 알 수 있다.

- 비유(IP는 아파트 몇 동, PORT는 몇 호)

- Well-known Port

FTP : 20, 21

HTTP : 80

HTTPS : 443

 

DNS

- IP는 기억하기 어렵고, 변경될 수 있다.

- Domain Name System을 통해 도메인 명을 IP 주소로 변환한다.

 

 

 

 

 

* 김영한님의 "모든 개발자를 위한 HTTP 웹 기본 지식" 강의에 바탕하여 작성하였습니다.

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

'Web > HTTP' 카테고리의 다른 글

HTTP 상태코드  (0) 2023.01.22
HTTP 메서드 활용  (0) 2023.01.22
HTTP 메서드  (0) 2023.01.22
HTTP 기본  (0) 2023.01.22
URI와 웹 브라우저 요청 흐름  (0) 2023.01.22