인터넷 프로토콜 역할을 합니다
- 지정한 IP 주소(IP Address)에 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
IP 패킷 정보에는 출발지 IP, 목적지 IP, 기타... 안에 전송데이터를 포함합니다
앞서 IP 프로톨콜의 한계 점을 보완하기 위해 TCP 가 세상에 나왔습니다.
TCP 패킷의 형태 입니다. 앞서 IP 패킷 안에 좀 더 자세한 정보를 담은 TCP 세그먼트를 담아 통신합니다.
클라이언트와 서버간에 신호를 보내어 연결이 되었는지 확인합니다.
1. 클라이언트 SYN 신호 -> 서버
2. 서버 SYN 신호 수신 시 ACK + SYN 신호 -> 클라이언트
3. 클라이언트 SYN + ACK 신호 수신 후 ACK 신호 -> 서버
4. 연결 확인 데이터 전송
- SYN = 접속 요청
- ACK = 요청 수락
현재는 최적화가 되어 마지막 클라이언트에서 SYN+ACK 수신 후 데이터를 포함하여 전송한다.
로직에 따라 다르지만 순서가 틀린 데이터를 받으면 틀려진 순서부터 다시 전송 요청합니다.
클라이언트가 데이터 전송을 하고 서버에서는 데이터를 잘 받았다는 신호를 보냅니다.
한번에 둘 이상 연결해야하는 경우 해결법
TCP/IP 패킷 정보에 보면 출발지(IP, PORT), 목적지(IP, PORT) 담겨져 있다.
클라이언트에서 사용하는 애플리케이션과 맞는 서버는 IP와 PORT 정보를 통해서 같은 IP 내에서 프로세스 구분을 한다.
출발지(ip,port)100.100.100.1 port 8090 을 받은 서버는 도착지(ip, port) 정보로 설정하여 돌려서 전송해주면 된다.
주의
IP는 기억하기 어렵고 변경될 수 있기 때문에 DNS 가 등장한다.
간단히 정의 하면
DNS 사용
1. 도메인 명(ex: google.com)을 DNS 서버에 요청
2. DNS 서버가 도메인 명에 해당하는 IP 반환
3. 반환 된 IP 주소로 접속
... 다음부터는 작은 챕터별로 나눠서 정리해야겠다...😂