internet 중 하나로, internet을 가장 성공적으로 구현한 예시 중 하나다.
<aside> 💡 각 인터넷 호스트는 TCP/IP 프로토콜을 구현한 소프트웨어를 사용한다.
</aside>
IP
기본 명명법과 데이터그램이라는 패킷을 호스트에서 호스트로 전달하는 배달 메커니즘을 제공한다.
데이터그램을 잃어버리거나 중복되는 경우에 아무것도 하지 않는다. 즉, 비안정적이다.
UDP
IP를 더 확장해서, 데이터그램을 프로세스에서 프로세스로 배달하지만 역시 비안정적이다.
TCP
IP를 더 확장해서 프로세스에서 프로세스로 안전한 완전 양방향 연결을 제공한다.
흐름 제어
보낸 데이터그램들이 순서대로 들어갈 수 있다.
리시버가 패킷을 지나치게 많이 받지 않도록 조절하는 것
오류 제어
<aside> 💡 호스트의 응용 프로그램(인터넷 클라이언트와 서버 등)은 소켓 인터페이스를 통해 TCP/IP 프로토콜을 이용한다.
</aside>
32비트의 IP 주소들은 네트워크 바이트 순서(빅 엔디안)대로 IP 주소 구조체에 저장된다.
<aside> 💡 호스트들이 메모리에 바이트를 저장하는 방식**(호스트 바이트 순서)**이 서로 다를 수 있다. IP 주소 구조체의 주소는 호스트 바이트 순서에 상관없이 늘 네트워크 바이트 순서로 저장된다.
</aside>
Unix 운영체제에서 제공해주는 네트워크와 호스트 바이트 순서간의 변환 함수들
64비트 값에 대한 함수는 없다! 필요하면 직접 구현.