[Web/HTTP] 인터넷 네트워크 (IP, TCP/UDP, PORT, DNS)
1. 인터넷 통신
인터넷 상에서 컴퓨터는 어떻게 통신할까?
컴퓨터와 2대가 바로 옆에 붙어있다면 케이블을 이용해서 연결할 수 있다.
하지만 인터넷망을 이용해서 떨어져있는 컴퓨터는 어떻게 연결할까?
컴퓨터 간 통신을 위해 해저광케이블 등 복잡한 인터넷 망을 이용해서 보낼 것이다.
이렇게 복잡한 인터넷 망으로 안전하게 데이터를 보내기 위해 인터넷 프로토콜인 IP를 이용한다.
2. IP (인터넷 프로토콜)
인터넷 망을 통한 데이터 전송을 위해 각 서버는 IP 주소를 갖고 있다.
IP의 역할
- 지정한 IP 주소(IP Address)에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
IP 패킷에는 데이터를 전송하는 출발지의 IP 주소와 데이터가 도착할 목적지의 IP 주소를 갖고 있다.
이 주소를 통해 컴퓨터(클라이언트, 서버)는 다른 컴퓨터와 데이터를 주고 받을 수 있다.
IP 프로토콜의 한계
- 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성 : 패킷이 사라지거나 패킷이 순서대로 안올 수 있다
- 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 여러 개있다면 구분이 불가능하다.
이러한 IP프로토콜의 한계를 TCP, UDP 프로토콜로 해결할 수 있다.
3. TCP/UDP (전송제어 프로토콜)
TCP 패킷은 전송 제어, 순서, 검증 정보를 담고 있어 IP 프로토콜만으로는 해결이 안됐던 문제를 해결할 수 있다.
TCP의 특징
1. 연결지향 - TCP 3 way handshake (가상 연결)
2. 데이터 전달 보증
3. 순서 보장
TCP는 신뢰할 수 있는 프로토콜이며 현재는 대부분 TCP를 사용한다.
[ TCP 3 way handshake ]
먼저 클라이언트가 서버에 연결가능 한지 SYN(접속요청)을 한다.
서버가 연결가능하다고 판단되면 SYN(접속요청) + ACK(요청 수락)을 동시에 보낸다.
클라이언트가 ACK(요청 수락)을 보낸 후 데이터를 전송한다.
이 연결 과정은 실제로 연결되었다는 것이 아니라 개념적으로만 연결된 가상 연결이다.
[ 데이터 전달 보증 ]
[ 순서 보장 ]
UDP의 특징
- 기능이 거의 없어 사용자가 기능을 직접 붙힌다.
- 연결지향 - TCP 3 way handshake X
- 데이터 전달 보증 X
- 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠르다
- IP와 거의 유사하고 PORT와 체크섬정도만 추가되어있다
- 애플리케이션에서 추가 작업이 필요하다.
현재 UDP가 다시 각광받고 있다!!
TCP 3 way handshake를 하는 과정에서 시간이 걸리기 때문에 UDP를 이용하려는 추세이다.
4. PORT -같은 IP 내에서 프로세스 구분
IP가 아파트 주소라면 PORT는 몇동 몇호인지 !!
- 0 ~ 65535 할당 가능
- 0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음
- FTP - 20, 21
- TELNET - 23
- HTTP - 80
- HTTPS - 443
5. DNS서버란?
도메인 네임 시스템(Domain Name System)
- 전화번호부
- 도메인 명을 IP 주소로 전환
IP는 기억하기 어렵고 변경될 수 있기 때문에
DNS서버에 도메인 명과 IP를 저장해놓으면 도메인 명을 쳐도 IP로 변환해준다
'CS > Network' 카테고리의 다른 글
[Web/HTTP] 쿠키 세션 토큰 JWT localstorage (0) | 2021.12.09 |
---|---|
[Web/Network] HTTP 기본 개념 및 HTTP1.0, HTTP1.1, HTTP2.0 특징 (0) | 2021.11.30 |
[Web/HTTP] TCP/UDP (0) | 2021.11.26 |
[Network] OSI 7계층 (0) | 2021.08.30 |