🖧IP(인터넷 프로토콜)
인터넷에서 통신을 위해 요청을 주고받는 규칙을 IP(Internet Protocol)이라고 한다.
클라이언트의 IP주소에서 서버의 IP주소로 데이터를 보내 인터넷 통신을 하게 된다. 데이터는 전달할 때, 패킷 단위로 통신을 하게 되는데 이를 IP가 하게 된다.


⚠️IP 프로토콜의 한계
비연결성 : 대상이 서비스 불능인 상태에서 패킷을 전송하게 되면 대상 서버가 패킷을 받았는지 안 받았는지 확인하기 어렵다.

비신뢰성 : 패킷 소실, 패킷 전달 순서 문제 발생


❓메시지의 전송 과정

- ✔️과정
- 메시지를 생성
- Socket 라이브러리를 통해 메시지를 전달
- TCP 정보를 생성
- IP 패킷을 생성
📔TCP/UDP

TCP 정보가 IP 패킷에 더해지면서 IP의 한계로 꼽혔던 비신뢰성(전송 순서 문제 발생)을 해결할 수 있게 된다.
📕TCP(Transmission Control Protocol, 전송 제어 프로토콜)
연결 지향 - TCP 3 way handshake

- ✔️과정
- ①. SYN 단계 : 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보낸다. ISN은 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호로 이는 장치마다 다를 수 있다.
- ②. SYN + ACK 단계 : 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보낸다.
- ③. ACK 단계 : 클라이언트는 서버의 ISN + 1 값인 승인번호를 담아 ACK를 서버에 보낸다.
이런 TCP 3-way handshake 과정 이후 신뢰성이 구축되고 데이터 전송을 시작한다.
그리고 TCP 3-way handshake는 물리적인 연결이 아닌 논리적인 연결을 설명하는 개념이다.
📗UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)
연결 지향 과정이 없음
데이터 전달 보증X
순서 보장X
데이터 전달 및 순서가 보장되지 않지만 구조가 단순해서 빠름
📘PORT

같은 IP 내에서 프로세스를 구분짓는다.
0 ~ 65535 : 할당 가능
0 ~ 1023 : 잘 알려진 포트(Well-known Port), 사용하지 않는 것이 좋음
- FTP(20, 21) : 장치와 장치 간 파일을 전송하는 데 사용되는 표준 통신 프로토콜
- SSH(22) : 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
- HTTP(80) : WWW을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜
📙DNS(Domain Name System, 도메인 네임 시스템)
도메인 이름과 IP 주소를 매핑해주는 서버
🔒출처
모든 개발자를 위한 HTTP 웹 기본 지식