인터넷 망을 통해 메시지를 보내야 할때, 중간에 노드(서버)를 통해 안전하게 전달해야함. 이런 상황에 어떤 과정을 거쳐야 할까?

: 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약을 의미. 즉, 메시지를 보내기 위한 최소한의 규칙

클라이언트와 클라이언트의 메시지를 수신하는 자도 IP주소를 부여받음.

IP 패킷 : 메시지를 전송 데이터에 집어넣기 전에, 출발지IP와 목적지 IP 등을 적어 데이터를 보냄

클라이언트는 출발지IP와 목적지 IP와 데이터가 담긴 패킷을 전송하면, 수신하는 서버도 데이터를 잘 수신했다고 패킷에 담아 전달.
비연결성
: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송.
즉, 편지 봉투의 목적지가 불분명해도 보냄.(대상 서버가 패킷을 받을 수 있는 상태인지 몰라도 전송)
비신뢰성
: 중간에 패킷이 사라지면? 패킷이 순서대로 안오면?

이런 문제들을 해결해주는게 TCP!!

cf) 데이터 통신에서는 계층을 5계층으로 나눔


한단계 내려갈 때마다 각 계층의 패킷을 씌워 보냄.
일반 IP 패킷과 다르게 TCP/IP 패킷은 TCP 정보가 추가됨.
(출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보...)

: 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이타 전달이 시작하기 전에 한쪽이 다른 쪽이 준비되었다는 것을 알수 있도록 함.
syn(연결 설정)메시지 보냄.syn+ack(응답확인) 메시지를 통해 응답 메시지를 보냄ack 하고 응답보냄.
🚨 개념적으로만 연결이 된거임, 즉 논리적 연결!
cf) 물리적 연결 : ex) 물리적으로 직접 LAN선을 연결.


: 각 TCP 세그먼트에 시퀀스 번호를 붙여 구현.
시퀀스 번호도 TCP 헤더에 기록되며, 수신 측은 이 시퀀스 번호를 사용해서 순서대로 조립.
: 같은 IP로 여러 서버에 접속할 때 사용, 같은 IP 내에서 프로세스 구분.
즉, 어떤 용도로 사용되는 패킷인지 포트번호로 확인

IP + PORT로 사용!
쉽게 설명하자면, IP는 목적지 서버를 찾는 것. PORT는 서버에 안에서 돌아가는 여러 애플리케이션 구분.

같은 IP를 전송하지면 서버마다 포트 번호가 다름.
✔️IP는 아파트, PORT는 몇동 몇호
0 ~ 65535 할당 가능
• 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
• FTP - 20, 21
• TELNET - 23
• HTTP - 80
• HTTPS - 443
IP를 통해 통신하게 되면,

도메인으로 먼저 서버를 찾으면 DNS 서버에서 해당 도메인의 IP주소를 찾아줌.
(IP 주소가 바뀌면 DNS 서버의 IP를 변경하면 됨)