Contact Us  
    Today
     
    03 8671 0111

tcp 통신 예제

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가 제공하지 않는 안정성을 제공해야 합니다. 예를 들어 TCP 또는 그 일부가 IP를 사용하지 않는 파일 전송 프로토콜(FTP) 및 단순 메일 전송 프로토콜(SMTP)에 사용됩니다. TCP는 제어 메시지를 사용하여 접촉 및 통신 프로세스를 관리합니다. 그러나 특별한 TCP 제어 메시지 유형은 없습니다. 모든 TCP 메시지는 동일한 세그먼트 형식을 사용합니다. TCP 헤더의 제어 플래그 집합은 세그먼트가 제어 목적으로 사용되고 있는지 아니면 데이터를 전달하는 데 사용되는지 여부를 나타냅니다. 다음 플래그는 제어 메시지를 사용하는 동안 변경됩니다.

그림 5.16 메시지가 네트워크 계층을 통해 이동하는 방식입니다. 참고: 이 예제의 주소는 대상 주소입니다. 예를 들어 비트스트림 011001010100 01100110101010100110000111100011110: 창이 0이면 보낸 사람이 일반적으로 두 가지 예외를 제외하고 세그먼트를 보내지 않을 수 있습니다. 첫째, 긴급 한 데이터를 보낼 수 있습니다., 예를 들어, 사용자가 원격 컴퓨터에서 실행 되는 프로세스를 죽일 수 있도록. 둘째, 발신자는 1바이트 세그먼트를 보내 수신기가 예상되는 다음 바이트 및 창 크기를 다시 발표할 수 있도록 할 수 있습니다. TCP 표준은 창 공지가 손실될 경우 교착 상태를 방지하기 위해 이 옵션을 명시적으로 제공합니다. 클라이언트가 서버와 통신할 수 있도록 서버를 올바른 주소에 바인딩하는 것이 중요합니다. 이전 예제에서는 모두 `localhost`를 IP 주소로 사용했으며, 이 주소는 동일한 서버에서 실행되는 클라이언트에 대한 연결을 제한합니다. gethostname()에서 반환된 값과 같은 서버의 공용 주소를 사용하여 다른 호스트가 연결할 수 있도록 합니다. 이 예제는 명령줄 인수를 통해 지정된 주소에서 수신하도록 에코 서버를 수정합니다.

로컬 호스트가 인터넷에서 웹 페이지를 다운로드할 수 있도록 하는 첫 번째 TCP/IP 트랜잭션을 살펴보겠습니다. 이 예제를 계속진행하기 전에 로컬 네트워크 TCP/IP 통신및 DNS 서버 및 NAT 작동 방식에 대해 잘 알고 있어야 합니다. 이 섹션에서는 그림 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에 연결됩니다.

Accredited with:

excellence and integrity

JHL Civil Pty Ltd ABN 79144 907 514, 10A Phillip Court, Port Melbourne, Victoria (VIC), 3207 Australia
© Copyright JHL Civil 2013