tcp 예제

메시지 경계는 TCP에서 끝까지 보존되지 않습니다. 예를 들어 송신 프로세스가 TCP 스트림에 4개의 512바이트 쓰기를 수행하는 경우 이러한 데이터는 4개의 512바이트 청크, 2개의 1024바이트 청크, 1개의 2048바이트 청크 또는 다른 방법으로 수신 프로세스에 전달될 수 있습니다. 수신기가 데이터가 기록된 장치를 감지할 수 있는 방법은 없습니다. TCP 엔터티는 로컬 프로세스의 사용자 데이터 스트림을 허용하고 64KB를 초과하지 않는 조각으로 나누고(실제로는 IP 및 TCP 헤더가 있는 단일 이더넷 프레임에 맞게 1460개의 데이터 바이트)로 나누고 각 조각을 별도의 IP 데이터그램으로 보냅니다. TCP 데이터가 포함된 데이터그램이 컴퓨터에 도착하면 원래 바이트 스트림을 재구성하는 TCP 엔터티에 제공됩니다. 간단히 하기 위해 TCP만 사용하여 TCP 전송 엔터티(소프트웨어 조각) 또는 TCP 프로토콜(규칙 집합)을 의미하는 경우가 있습니다. 맥락에서 그것은 의미있는 것이 분명 할 것이다. 예를 들어 사용자가 TCP에 데이터를 제공하면 TCP 전송 엔터티가 명확하게 의도됩니다. IP 계층은 데이터그램이 제대로 전달될 것이라는 보장을 제공하지 않으므로 TCP가 시간 및 재전송을 위해 필요에 따라 전송할 수 있습니다. 도착하는 데이터그램은 잘못된 순서로 잘 수행될 수 있습니다. 또한 적절한 순서로 메시지로 다시 어셈블하는 것은 TCP의 것입니다. 즉, TCP는 대부분의 사용자가 원하고 해당 IP가 제공하지 않는 안정성을 제공해야 합니다.

그림 5.16 메시지가 네트워크 계층을 통해 이동하는 방식입니다. 참고: 이 예제의 주소는 UDP가 사용하는 대상 주소로 속도가 바람직하고 오류 수정이 필요하지 않을 때 사용됩니다. 예를 들어 UDP는 라이브 방송 및 온라인 게임에 자주 사용됩니다. 이 섹션에서는 그림 5.13에 표시된 간단한 네트워크를 사용하여 TCP/IP의 작동 방식을 설명합니다. 이 그림은 BN으로 연결된 4개의 LAN이 있는 조직을 보여 주며, BN은 또한 인터넷에 연결되어 있습니다. 각 건물은 별도의 서브넷으로 구성됩니다. 예를 들어 건물 A에는 128.192.98.x 서브넷이 있는 반면 B 건물에는 128.192.95.x 서브넷이 있습니다. BN은 자체 서브넷: 128.192.254.x입니다.

각 건물은 두 개의 IP 주소와 두 개의 데이터 링크 계층 주소가 있는 라우터를 통해 BN에 연결되며, 하나는 건물에 연결되고 다른 하나는 BN에 연결됩니다. 이 조직에는 네 개의 건물에 여러 개의 웹 서버가 분산되어 있습니다. 인터넷에 있는 DNS 서버와 라우터는 BN 자체에 직접 있습니다. 간단히 하기 위해 모든 네트워크가 이더넷을 데이터 링크 계층으로 사용하고 응용 프로그램 계층의 웹 요청에만 초점을 맞춥니다. 로컬 호스트가 인터넷에서 웹 페이지를 다운로드할 수 있도록 하는 첫 번째 TCP/IP 트랜잭션을 살펴보겠습니다. 이 예제를 계속진행하기 전에 로컬 네트워크 TCP/IP 통신및 DNS 서버 및 NAT 작동 방식에 대해 잘 알고 있어야 합니다. UDP는 잃을 여유가 있는 작은 메시지가 있고 가능한 한 효율적으로 보내고자 하는 경우에 적합합니다. 당신이 그들을 잃을 여유가있을 수있는 한 가지 이유는 그들이 길을 잃은 경우 다시 보낼 수 있기 때문입니다. 인터넷의 주요 예는 DNS – DNS는 “stackoverflow.com IP 번호는 무엇입니까?”와 같은 작은 쿼리로 구성되며 응답은 그에 따라 작습니다. 컴퓨터는 이러한 쿼리를 많이 만들기 때문에 효율적으로 만들어야 하지만 도중에 길을 잃으면 시간 지정을 쉽게 하고 다시 보낼 수 있습니다.

창이 0이면 보낸 사람은 두 가지 예외를 제외하고 일반적으로 세그먼트를 보내지 않을 수 있습니다. 첫째, 긴급 한 데이터를 보낼 수 있습니다., 예를 들어, 사용자가 원격 컴퓨터에서 실행 되는 프로세스를 죽일 수 있도록. 둘째, 발신자는 1바이트 세그먼트를 보내 수신기가 예상되는 다음 바이트 및 창 크기를 다시 발표할 수 있도록 할 수 있습니다.