HTTP 기반 네트워크 흐름에 대해 이해할 수 있다.
TCP/IP 기반 네트워크 흐름에 대해 이해할 수 있다.
IP(인터넷 프로토콜)는 지정한 IP주소에 packet이라는 통신 단위로 데이터 전달
패킷은 소포에 비유할 수 있는데 우체국 송장처럼 전송 데이터를 전송하기 위해 출발지 IP, 목적지 IP와 같은 정보가 포함 (전송데이터를 전달할 수 있는 편지봉투)

<노드는 하나의 서버 컴퓨터>
클라이언트에서 패킷단위로 전송하면 노드들은 목적 IP에 도달하기 위해 서로 데이터를 전달

서버에서 데이터를 전송받으면 서버도 이에 대한 응답을 패킷으로 돌려줘야한다.
1.비연결성
=> 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
2.비신뢰성
=> 패킷의 순서를 보장할 수 없음
=> 중간에 있는 서버가 데이터를 전달하던 중 장애가 생겨 패킷이 중간에 소실되더라도 클라이언트는 이를 파악할 방법이 없다.
네트워크 계층 구조를 통해 이러한 한계 보완가능

socket => 네트워크 환경에 연결할 수 있게 만들어진 연결부
TCP 세그먼트 => IP패킷의 출발지 IP와 목적지IP를 보완할 수 있는 출발지PORT, 목적지 PORT, 전송제어 순서, 검증정보 등을 포함

연결지향(TCP 3 way handshake)

1. 클라이언트는 서버에 접속을 요청하는 SYN패킷을 보낸다.
2. 서버는 요청을 받고 클라이언트에게 요청을 수락한다는 ACK와 SYN가 설정된 패킷을 발송한다.
3. 클라이언트가 서버에게 ACK로 응답한다.
4. 이후부터는 연결이 성립되며 데이터를 전송할 수 있다.
데이터 전달 보증
=> 데이터 전송이 성공적으로 이루어진다면 이에 대한 응답을 돌려주기 때문에 IP패킷의 한계인 비연결성을 보완할 수 있다.
순서보장

신뢰할 수 있는 프로토콜
-IP에 PORT, checksum field(중복 검사로 무결성 보호)정보만 추가
-기능이 거의 없음
-비 연결지향( TCP 3 way handshake X)
-데이터 전달 보증 X
-순서 보장 X
-데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
-신뢰성보다는 연속성이 중요한 서비스(e.g.실시간 스트리밍)에 자주 사용됨
=>무거운 라이브러리(TCP)와 필요한 기능만 들어있는 가벼운 라이브러리(UDP)로 비교

-클라이언트 서버 구조
-stateless