인터넷 네트워크
1. 인터넷 통신과 IP
인터넷을 통해 우리는 데이터를 보내고(request) 그에 따른 응답(respone)을 받는다.
이러한 일련의 과정을 인터넷 통신이라고 한다.
그렇다면 인터넷에서는 무엇을 기준으로 어떻게 정보를 주고 받을까?
인터넷에서는 지정한 IP(인터넷 프로토콜)에 패킷(Packet)이라는 통신 단위로 데이터를 전달 한다.
[패킷 구성]
위와 같이 패킷은 전송될 데이터와 IP주소에 대한 정보 등으로 구성되어 있다.
그러나 아쉽게도 IP 패킷 방식은 아래와 같은 문제점을 갖고있다.
· 비연결성
패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
· 비신뢰성
중간에 패킷이 사라지거나 순서대로 오지않을 경우를 보장할 방법이 없다.
· 프로그램 구분
같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 경우를 구분 할 수 없다.
2. TCP, UDP
인터넷 프로토콜 스택에는 다음과 같이 크게 4개의 계층이 있다.
[프로토콜 스택의 4계층]
위의 스택 4계층은 아래와 같이 각 계층에 따라 순서대로 필요한 정보가 덧붙여져서 패킷을 생성한다.
[인터넷 프로토콜 계층]
위의 그림에서 처음 나온 TCP는 전송 제어 프로토콜(Transmission Control Protocol)로써 기존의 IP 패킷의 단점을 보완한 프로토콜이다.
TCP 정보는 출발/목적지 PORT, 전송제어, 순서, 검증 등의 정보가 담겨있다.
[TCP/IP 패킷 정보]
■ TCP 특징
· 연결지향 - TCP 3 way handshake (가상 연결)
- 데이터 전송시 데이터를 받는 서버가 제대로 연결되어 있는지 3번의 연결 과정을 통해 검증한다.
· 데이터 전달 보증
· 순서 보장
위와 같은 특징으로 TCP는 신뢰할 수 있는 프로토콜이기 때문에 현재는 대부분 TCP를 사용하고 있다.
■ UDP 특징
· 기능이 거의 없는 단순한 구조
· 연결지향, 데이터 전달, 순서 모두 보장하지 않는다.
· 단순하기 때문에 빠르다.
· P와 거의 같고 PORT 정도만 추가 된 정도이다.
3. PORT
같은 IP내에서 다수의 애플리케이션을 구동할 때는 각 애플리케이션에 따라 인터넷 연결이 구분되어야 한다.
PORT는 같은 IP내에서 인터넷 연결을 구분할 수 있는 표지판 역할을 한다.
[같은 IP내에서 프로세스 구분]
4. DNS
IP는 기억하기 어렵고 변경될 수 있다.
이 때문에 사용되는 IP를 대표하는 DNS(Domain Name System)을 사용한다.
[DNS 사용 예시]
'Spring > 스프링을 위한 HTTP 기본 지식' 카테고리의 다른 글
#6 HTTP 상태코드 (0) | 2021.06.17 |
---|---|
#5 HTTP_메서드 활용 (0) | 2021.06.17 |
#4 HTTP_메서드 (0) | 2021.06.16 |
#3 HTTP_기본 속성 (0) | 2021.06.16 |
#2 URI (0) | 2021.06.16 |
댓글