1. TCP / IP의 이해
- 네트워크는 서로 다른 기종의 컴퓨터로 구성되어 있어 각 네트워크 간에 공통으로 사용할 수 있는 프로토콜의 필요성이 대두되었다.
- 이에 따라 인터넷에서 컴퓨터 간의 통신이 가능하도록 표준화하여 채택한 통신규약이 바로 TCP/IP이다.
- 네트워크와 네트워크를 연결하는데 사용하는 프로토콜인 TCP/IP는 전송 제어 프로토콜 ( TCP, Transmission Control Protocol)과 인터넷 프로토콜 ( IP, Internet Protocol )을 의미한다.
- 인터넷에서 사용하는 응응 프로그램은 대부분 이 TCP/IP 프로토콜을 이용하여 데이터를 교환한다.
▶ 네트워크 접속 계층
- 모든 표준 및 임의 네트워크를 지원할 수 있도록 하고 있다.
- 이더넷, 802.11x, MAC/LLC, SLIP, PPP 등
- 송신 측 컴퓨터에서는 상위 계층에서 전달받은 패킷에 물리적 주소인 MAC 주소 정보가 있는 헤더를 추가하여 프레임을 만든 후 그 프레임을 하위 계층인 물리 계층에 전달한다.
- 수신 측 컴퓨터에서는 데이터 링크 계층에서 추가한 헤더를 제거하여 상위 계층인 네트워크 계층으로 전달한다.
▶ 네트워크 계층
- 인터넷 계층이라고도 하며, 네트워크의 패킷 전송을 제어한다.
- 데이터를 전송할 때 결로는 네트워크 계층에서 선택하는데, TCP/IP 프로토콜에는 IP와 ARP, ICMP, IGMP가 있다.
- TCP/IP에서 가장 중요한 프로토콜 중 하나인 IP는 네트워크의 주소 체계를 관리하고, 데이터그램을 정의하며 전송에 필요한 경로를 결정
- 송신 측 컴퓨터에서는 상위 계층에서 전달받은 패킷에 논리적 주소인 IP주소를 포함하는 헤더를 추가하여 하위 계층인 데이터 링크 계층으로 전달한다.
- 수신 측 컴퓨터에서는 하위 계층에서 전달받은 패킷의 헤더 정보를 확인한 후 송신 측 컴퓨터의 네트워크 계층에서 추가한 헤더를 제거하여 상위 계층인 전송 계층으로 전달한다.
▶ 전송 계층
- 상위 계층에서 볼 때 두 호스트 간의 데이터 전송을 담당하는 계층으로, TCP와 UDP 프로토콜을 사용한다.
- 네트워크 양단의 송수신 호스트 간에 신뢰성 있는 전송 기능을 제공하는 것으로, OSI 참조 모델에서는 세션 계층의 일부와 전송 계층에 해당
- TCP/IP에는 시스템 논리 주소와 포트가 있어 각 상위 계층의 프로세스를 연결하여 통신한다.
- TCP는 전송되는 패킷에 오류와 중복이 없게 하고, 보낸 순서대로 상대편이 받을 수 있도록 신뢰성 있는 데이터 전송을 보장하는 프로토콜
- 신뢰성이 있는 만큼 헤더의 오류코드에 대응할 수 있는 각종 정보가 들어 있다.
▶ 응용 계층
- TCP/IP 프로토콜의 범위는 응용 계층의 프로토콜까지 포함
- FTP(파일 전송), SMTP(이메일), SNMP(Simple Network Management Protocol : 네트워크 관리 ) 등이 있다.
- TCP/IP 프로토콜을 이용한 응용 프로그램 중에서 사용자가 직접 사용하는 인터넷 메일 프로그램(아웃룩 익스프레스)이나 웹브라우저(인터넷 익스플로러) 등을 응용 계층으로 분류할 수 있다.
▶ TCP/IP 주소의 구조
⊙ 물리 주소
- 링크 주소 또는 통신망에서 정의된 노드의 주소, 이더넷 네트워크인터페이스 카드(NIC) 6바이트(48비트) 주소 등을 말한다.
⊙ 인터넷 주소
- 인터넷에서는 기존 물리 주소와는 별도로 각 호스트를 식별할 수 있는 유일한 주소를 지정해야 한다.
⊙ 포트 주소
- 수신지 컴퓨터까지 전송하려면 IP 주소와 물리 주소가 필요하다.
- 인터넷 통신의 최종 목적은 한 프로세스가 다른 프로세스와 통신할 수 있도록 하는 것이다.
2. IP ( Internet Protocol )
▶ 인터넷에 연결된 모든 컴퓨터에는 고유의 주소가 부여되는데, 이를 'IP주소'라고 한다.
- 현재 사용하는 IP 주소 체계는 IP Ver. 4이다
- IP 주소는 8비트 크기의 필드 네 개를 모아서 구성한 32비트(4바이트) 논리 주소다.
- xxx.xxx.xxx.xxx, 즉 163.152.19.114처럼 .(점)으로 구분한 10진수 형태 네 개로 구성된다.
- 한 바이트가 가질 수 있는 10진수는 0~255이므로, IP 주소의 값을 0.0.0.0에서 255.255.255.255까지다.
▶ 일반 우편 주소를 시, 동, 번지 등으로 구분하는 것처럼 IP주소도 네트워크 주소(Net ID)와 호스트 주소(Host ID)로 구분한다.
- 네트워크 주소는 전체 네트워크를 좀 더 작은 네트워크로 분할하여 각 호스트가 속한 네트워크를 대표한다.
- 네트워크 주소는 8비트, 16비트, 24비트 크기로 분류한다.
- 호스트 주소는 네트워크 주소로 표현하는 네트워크 내부에서 각 호스트의 주소를 표현하는 역할을 하며, 전체 32비트에서 네트워크 주소를 제외한 나머지에 해당한다.
▶ IP 주소 체계
- IP주소를 효율적으로 배정하려고 클래스라는 개념을 도입했다. 클래스에는 A, B, C, D, E 다섯 종류가 있다.
- 이 중 D클래스는 IP 멀티 캐스팅용, E 클래스는 자원을 확보하려고 예비용으로 분류해 놓았기 때문에 실제 사용하는 것은 A, B, C 클래스 세 종류 뿐이다.
- 클래스는 IP 주소의 맨 처음 바이트의
- 시작 1비트가 0으로 시작하면 A클래스
- 시작 2비트가 10으로 시작하면 B클래스
- 시작 3비트가 110으로 시작하면 C클래스
- 시작 4비트가 1110으로 시작하면 D클래스
- 시작 4비트가 1111로 시작하면 E클래스
⊙ A 클래스
- 네트워크 주소로 8비트, 호스트 주소로 24비트를 사용한다.
- 네트워크 주소의 가장 왼쪽에 해당하는 비트는 0으로 고정되어 있는데, 이것이 A클래스를 구분하는데 사용하는 식별자
- 첫 번째 바이트의 첫 비트가 0으로 시작하기 때문에 맨 처음 숫자는 0~127로 시작
- 범위는 0.0.0.0에서 127.255.255.255까지가 된다.
- 0.0.0.0은 사용하지 않는 주소
- 127.x.x.x는 시스템 루프백 주소(가상으로 할당한 인터넷 주소)라서 사용하지 않는 주소
- 실제로 사용하는 주소는 1~126까지로, 1.0.0.0~126.255.255.255가 된다.
- 가장 왼쪽 비트가 0이며, 첫번째 옥텟이 Net ID(7비트)
- 27=128 중 126개 사용 (두 개는 특수 목적에 사용)
- 224=16,777,216 중 호스트 16,777,214개 사용(Host ID가 모두 0인 것과 모두 1인 것은 특별한 의미가 있는 주소)
⊙ B 클래스
- 구분하는데 사용하는 식별자는 10으로 시작
- 네트워크 주소에 16비트, 호스트 주소에 16비트를 배정하는 클래스
- IP 주소의 시작이 128~191로 시작하고, 기본 네트워크 마스트는 255.255.0.0이다.
- 네트워크 주소는 128.0.0.0~191.255.0.0, 호스트 주소는 2바이트로 호스트 65,534개를 구성할 수 있다.
- 이것은 A클래스와 동일하게 네트워크 주소(0.0)와 브로드캐스트 주소(255.255)를 제외한 호스트의 수다.
- IP주소가 128.1.1.1인 호스트는 128.1.0.0 네트워크에 속하며, 호스트 주소는 1.1이다.
- 가장 왼쪽 2비트가 10이며, 옥텟이 두 개인 Net ID(14비트)
- 214=16,384개 사용 가능
- Host ID로 16비트 사용
- 216=65,536개 중 호스트(라우터) 65,534개 사용 가능(두 개는 특별한 주소)
⊙ C 클래스
- 소규모 네트워크에서 가장 많이 사용하는 클래스로 C클래스를 구분하는데 사용하는 식별자는 110으로 시작
- 호스트 배정에 총 8비트를 사용할 수 있으므로 호스트를 최대 254개 사용할 수 있다.
- IP주소의 시작이 192~223으로 시작하며, 기본 네트워크 마스크는 255.255.255.0이다.
- 네트워크 주소는 192.0.0.0~223.255.255.0, 호스트 주소는 1바이트로 호스트 주소는 254개 사용할 수 있다.(0, 255 제외)
- IP주소가 200.100.100.100인 호스트는 200.100.100 네트워크에 속하며, 호스트 주소는 100이다.
- 가장 왼쪽 3비트가 110이며, 옥텟이 세 개인 Net ID(21비트)
- 221=네트워크를 2,097,152개 가질 수 있음
- Host ID로 8비트 사용(28=256)
- 호스트(라우터)를 254개 가질 수 있음.
⊙ D 클래스
- IP 주소는 224~239까지로 시작하며, 멀티캐스트(데이터 수신 대상이 네트워크에 연결된 일부 컴퓨터) 용도로 사용한다.
⊙ E 클래스
- IP 주소는 240~255까지로 시작하며, 미래에 사용하려고 남겨놓은 주소다.
- 255.255.255.255는 전체 컴퓨터에 대한 브로드캐스트(네트워크에 연결된 전체 컴퓨터를 수신 대상으로 하는) 주소로 사용한다.
3. IP 프로토콜
- IP는 TCP/IP 프로토콜 계층의 네트워크 계층에서 사용하는 프로토콜이다.
- TCP는 오류가 발생하면 해당 정보를 재전송할 수 있는 신뢰성 있는 연결 지향형 프로토콜
- IP는 간단한 오류 검사 기능만 있어 신뢰성이 보장되지 않는 비연결형 데이터 그램 프로토콜
- IP는 패킷을 수신지까지 최선을 다해 전송하지만, 전송 완료까지는 보장하지 않는다.
▶ 연결형 서비스 ( Connection-Oriented )
- 송수신자 사이에 논리적 연결을 확립하고 데이터를 전송하는 방법
- 연결형은 전송 계층에 해당되는 기능으로, 앞에서 살펴본 TCP의 방식
▶ 비연결형 서비스 ( Connetionless )
- 송수신자 간에 논리적인 연결을 확립하지 않은 채 데이터를 전송하는 방법
- 비연결형 서비스는 UDP 방식이며, 신뢰성 있는 데이터 전송을 할 수 없어 상위 계층인 TCP 등에서 신뢰성을 보장해야한다.
- 네트워크에서 송신 측이 동일한 수신측으로 전송하는 데이터그램이 다양한 경로를 통해 도착할 수 있음을 보여준다.
▶ 데이터그램의 구조
- IP계층의 패킷을 데이터그램라고 함
- 가변 길이이며, 헤더와 데이터 부분으로 구성
- 헤더는 크기가 20~60바이트고, 패킷을 전달하는데 필요한 모든 정보를 포함
- 버전 : IP 헤더 안에 있는 버전(Version) 번호 필드(4비트)는 인터넷 버전을 규정하며, 현재 버전은 4
- 헤더 길이 : IP 헤더 안에 있는 다음 4비트 필드는 데이터그램 헤더의 전체 길이를 4바이트 단위로 나타낸다.
- 서비스 유형 : 8비트 필드는 라우터가 처리해야 하는 데이터그램 규정을 나타낸다.
▶ TOS
- IP 데이터그램을 전달하는 특정 서비스 품질(Quality of Service) 기능을 제공하려고 고안된 4비트의 서브필드로 각 비트는 0과 1의 값을 가질 수 있는데, 오직 한 비트만 1의 값을 가진다.
- 서비스 유형에 따라 지연, 처리량, 신뢰성, 비용 등을 설정할 수 있으며, 상호 베타적이어서 하나의 갑이 1로 설정되면 나머지 값은 무조건 0
▶ 검사합 ( Checksum )
- TCP/IP 프로토콜에서 많이 사용하는 오류 제어 방법
- 패킷 전송 중 발생하는 헤더 부분의 오류를 검사
- 송신자가 전송하는 패킷에 검사합을 함께 보내면 수신자는 패킷과 함께 검사합을 계산해 조건을 만족하면 패킷을 받고, 그렇지 않으면 패킷을 폐기한다.
▶ IPv6 주소 체계
- 16바이트(128비트)로 구성
- 주소를 읽기 쉽도록 16진수 콜론으로 표현
- 128비트는 길이가 2바이트인 영역 여덟 개로 나뉘며, 16진수 표기법에서 2바이트는 16진수 네 개로 표현. 전체적으로 16진수 32개로 표현
- 128비트 IP주소는 단축해서 표현할 수 있는데, 콜론 두 개 사이에 있는 수(섹션) 네개에서 앞쪽은 0은 생략할 수 있다.
- 이런 생략 방식을 이용하면 0056은 56으로, 000D는 D로 0000은 0으로표기할 수 있다.
- 0으로만 구성된 색션은 0을 모두 지우고, 콜론 두 개로 대치할 수 있는데, 주소당 한 번만 사용된다.
- 섹션 두 개에 0이 있다면, 그 중 주소 한개에서만 생략 방식을 이용할 수 있다.
▶ IPv6 데이터그램
- IPv6의 각 패킷은 기본 헤더와 페이로드(Payload)로 구성
- 페이로드는 선택적인 확장 헤더들과 상위 계층의 데이터로 구성
- 기본 헤더는 40바이트며, 페이로드는 65,535바이트까지 차지한다.
▶ 기본 헤더의 종류는 다음과 같다
⊙ 버전 : 4비트
- IP 버전을 나타내며, 값은 6이다.
⊙ 우선순위 : 4비트
- 동시 접속을 대한 패킷의 우선순위를 규정
⊙ 흐름 레이블 : 24비트
- 데이터의 특정 흐름을 다룰 수 있도록 설계된 것이다.
⊙ 페이로드 길이(Payload Length) : 16비트
- 기본 헤더를 제외한 IP 데이터그램의 전체 길이를 규정
⊙ 다음 헤더(Next Header) : 8비트
- 데이터그램에서 기본 헤더의 다음 헤더를 정의
▶ IPv4와 IPv6의 패킷 헤더와 비교
- IPv6은 헤더의 길이가 고정되어 있어 헤더 길이 필드가 제거되고 서비스 유형 필드도 제거된다.
- 그 기능을 우선순위와 흐름 레이블 필드가 대체한다.
- 총 길이 필드 또한 제거되어 페이로드 길이 필드로 대체된다.
- 식별, 플래그, 옵션 필드는 기본 헤더에서 제거되고, 이 필드는 확장 헤더에 포함된다.
▶ 전환 기술(IPv4에서 IPv6으로)
- IPv4 네트워크망과 IPv6 네트워크망 간에 주소 변환기를 이용하여 IP를 상호 연동
- 게이트웨이를 이용하여 IPv4와 IPv6 주소 체계를 호환하는 기술
- 이 기술은 IPv4 클라이언트가 IPv6 서버에 접속하거나 반대로 IPv6 클라이언트가 IPv4 서버에 접속할 때 사용한다.
▶ 응용 계층 게이트웨이 방식(응용 계층)
- 응용 계층 게이트웨이 방식은 변환(트랜잭션) 서비스를 위한 ALG(응용 수준 게이트웨이), 웹사이트 정보를 숨기고 캐시 매커니즘으로 서비스의 성능을 향상시키는데 사용한다.
- ALG가 두 프로토콜(IPv4와 IPv6)을 동시에 지원할 떄는 두 프로토콜 간 변환 메커니즘으로 사용할 수 있다.
- 응용 계층 게이트웨이 방식은 응용 계층에서 변환되며, 각 서비스는 IPv4와 IPv6에 밀폐되어 있어 FTP, DNS, Telnet 서비스 등 응용 프로토콜에 내장된 주소를 변환하는데 용이하다.
- 하지만 각 서비스를 위한 ALG는 IPv4와 IPv6에서 모두 실행되어야만 한다.
▶ 전송 계층 릴레이 방식(전송 계층)
- TCP/UDP의 IPv4 세션과 TCP/UDP의 IPv6 세션을 중간에서 릴레이한다.
- 송 계층 릴레이 방식에서 TCP 릴레이 서버는 여러 동작 과정을 거쳐 전송계층에서 전환된다.
① TCP 요청이 릴레이 서버에 도착하면, 네트워크 계층은 수신지가 서버의 주소가 아니어도 TCP 요청을 TCP 계층으로 전송
② 서버는 실제 수신지로 TCP 연결을 하나 더 생성한 후 연결이 두 개 구축되면, 서버는 이연결 중 하나에서 데이터를 읽어 나머지 하나의 연결에 기록한다.
▶ 헤더 변환 방식(네트워크 계층)
- 네트워크 계층(IP)에서 IPv6 패킷 해더를 IPv4 패킷 헤더로 또는 IPv4 패킷 헤더를 IPv6 패킷 헤더로 변환하는 방식
- IPv4를 사용할 때는 헤더 변환이 필요
- 헤더 변환은 IP 계층에서 변환을 의미
- IPv4 패킷을 IPv6 또는 그 반대로 헤더를 변환하는 것을 SIIT(Stateless IP/ICMP Translation)에서 정의한다.
4. TCP(전송 제어 프로토콜)
▶ TCP 연결형 데이터 서비스
- 송신 측 TCP 포트에서 수신 측 TCP 포트로 바이트의 스트림을 전송하는 연결형 데이터 전달 서비스를 제공
- TCP 사용자가 연결을 요청하면, TCP 프로토콜과 수신 측 TCP 사용자가 연결 설정에 동의하여 TCP 연결을 설정
- 연결 지향형 프로토콜은 송신 측 컴퓨터와 수신 측 컴퓨터와 수신 측 컴퓨터가 데이터를 전송하기 전에 먼저 데이터를 송수신할 수 있는 연결 통로를 만들고 데이터를 전송하는 프로토콜을 말한다.
▶ 포트 번호
- 포트는 TCP가 상위 계층으로 데이터를 전달하거나 상위 계층에서 TCP로 데이터를 전달할 때 상호 간에 사용하는 데이터의 이동 통로
- 통신할 때 파일을 동시에 다운로드 할 수 있는 이유는 TCP 프로토콜이 포트를 여러 개 사용해서 상위 계층의 프로그램과 각각 따로 통신
- TCP 포트 범위는 0~65,534까지의 정수
- 웹서비스나 이메일 서비스 등은 클라이언트가 편리하게 접속할 수 있도록 해당 서비스에 미리 할당해 놓은 포트 번호를 사용
- 주요 인터넷 서비스에 정해 놓은 포트 번호를 '잘 알려진 포트 번호'라고 하며 1~1023까지 할당
▶ TCP 세그먼트
- 전송을 위해 바이트 스트림을 세그먼트 단위로 나눈다.
- 세그먼트란 TCP를 이용하여 두 장치 간에 전달하는 데이터들의 단위를 말한다.
▶ 송신지 포트 번호 ( Source Port Address )
- 세그먼트를 전송하는 호스트에 있는 응용 프로그램의 포트 번호
- 16비트의 포트 번호는 0~65,535 범위 내에 있을 수 있다.
▶ 수신지 포트 번호 ( Destination Port Address )
- 수신지 호스트에서 수행하는 프로세스가 사용하는 포트 번호
- 클라이언트가 수신지 호스트를 요청하는 서버라면 대부분은 잘 알려진 포트 번호
▶ 순서 번호 ( Sequence Number )
- 세그먼트에 포함된 데이터의 첫 번째 바이트에 부여된 것
- 32비트 부호 없는 번호
- 0부터 시작해서 232-1을 초과하면 다시 0으로 되돌아온다.
- TCP는 신뢰성 있는 연결을 보장하려고 전송하는 각 바이트마다 번호를 부여하는데, 순서 번호는 수신지 TCP에 세그먼트의 첫 번째 바이트가 순서 번호에 해당하는 바이트라는 것을 알려준다.
▶ 확인 응답 번호 ( Acknowledgement Number )
- 세그먼트를 수신하는 노드가 상대편 노드에서 수신하려는 바이트의 번호
- 이 번호는 성공적으로 수신한 마지막 바이트의 순서 번호+1이다.
▶ 헤더 길이
- TCP 헤더 길이를 4바이트 워드 값으로 나타내며 헤더의 길이는 20~60바이트가 될 수 있다.
- 이 필드 값은 5x4=20에서 15x4=60 사이의 값이 될 수 있는 것이다.
▶ 예약 ( Reserved )
- 나중에 사용하려고 예약된 6비트 필드
▶ 플래그
- 프로토콜의 동작을 제어하는데 사용하는 비트 단위의 플래그
▶ 윈도우 크기 ( Window Size )
- 상대방이 유지해야 하는 바이트 단위의 윈도우 크기를 정의
- 필드의 길이가 16비트이기 때문에 윈도우의 최대 크기는ㄴ 65,535바이트
▶ 검사합
- 의사 헤드를 포함한 헤드 부분의 오류를 검출하는 검사합 계산이 포함
⊙ 상위 계층에서 사용하는 오류 검출 방법인 검사합을 수행하는 과정 ( 송신 측에서는 다음 과정을 거친다.)
① 데이터 단위를 각각 n(보통 16)비트인 섹션 m개로 나눈다.
② 모든 섹션은 합을 만들려고 1의 보수를 사용하여 서로 더한다.
③ 합은 보수화되어 검사합이 된다.
④ 검사합의 값을 데이터와 함께 보낸다.
⊙ 수신 측에서는 다음 과정을 거친다.
① 데이터 단위를 각각 n비트인 섹션 m개로 나눈다.
② 모든 섹션은 합을 만들려고 1의 보수를 사용하여 서로 더한다.
③ 합은 보수화된다.
④ 결과가 0이면 오류가 없는 것이고, 그렇지 않으면 오류가 발생한 것이다.
▶ TCP 연결 관리
- 포트 번호만 사용하여 응용 프로그램을 식별하는 UDP와는 달리 TCP는 연결을 사용하여 응용 프로그램을 식별
▶ 연결 설정(3-Way 핸드셰이킹)
▶ 연결 종료
▶ 확인 응답
- 수신 측에서 데이터를 수신했을때 이 사실을 송신 측에 통보하는 것
- 핸드셰이킹이 해당
- 확인 응답은 ACK(ACKnowledgement)
- 이 응답 확인이 있어야 다음 데이터를 전송할 수 있다.
- 수신 측에서 데이터를 수신한 후에도 네트워크 문제로 재전송될 때가 있다.
- 이때는 이미 수신한 데이터이므로 재전송한 데이터는 폐기해야 되는데, 순서 번호를 설정하여 구분할 수 있다.
▶ TCP 흐름 제어
- TCP는 원래의 데이터를 패킷이라는 작은 단위로 분할하여 전송하기 때문에 수신 측의 컴퓨터는 수신한 패킷을 재결합하여 다시 원래의 데이터로 만들어야 한다.
- 패킷을 전송할 때 네트워크 상황에 따라 패킷의 도착 순서가 바뀔 수도 있고, 중간에서 사라지는 패킷을 한 번에 하나씩 송수신하는 것보다 여러 패킷을 한 번에 송수신한 후 수신 확인 신호를 전송하는 것이 훨씬 효율적이다.
- 한 번에 전송하는 패킷의 개수를 ' 윈도우 크기 ' 또는 ' 수신 버퍼의 크기 ' 라고 한다.
- 데이터를 전송할 때 한 번에 전송할 수 있는 전체 패킷의 크기를 ' TCP 윈도우 크기 '라고 하는데, 윈도우 크기가 크면 한번에 여러 패킷을 전송할 수 있다.
▶ 슬라이딩 윈도우 ( Sliding Window )
- 송신 측 컴퓨터는 윈도우 크기에 따라 1~4번까지 패킷을 전송하고, 수신 측 컴퓨터에서 수신 확인 ACK 신호를 수신하면 ACK 신호에서 요청한 5번 패킷 위치로 송신 윈도우를 오른쪽으로 옮긴다.
- 다시 윈도우 안의 패킷들을 전송하고, 수신 측 컴퓨터에서 ACK 신호를 수신하면 ACK 신호에서 요청한 9번 패킷 위치로 송신 윈도우를 옮김
- 송신 버퍼 역할을 하려고 송신 윈도우를 이동하는 방식
5. UDP(사용자 데이터그램 프로토콜)
- RFC 768 문서에 정의된 비연결 지향 프로토콜을 말한다.
- TCP(연결 지향 프로토콜)와 달리 패킷이나 흐름 제어, 단편화 및 전송 보장 등의 기능은 제공하지 않는다.
- UDP 헤더는 TCP 헤더에 비해 간단하므로 상대적으로 통신 과부하가 적다.
- UDP 헤더의 크기(8바이트)는 TCP 헤더의 크기(20바이트)보다 작다.
- DNS(Domain Name System), DHCP(Dynamic Host Configuration Protocol), SNMP 등이 있다.
⊙ 송신지 포트 번호 : 16비트
- 데이터 영역의 데이터 정보를 만든 전송 시스템의 프로세스나 응용 프로그램을 말한다.
- TCP 헤더의 송신지 포트와 같은 기능을 수행한다.
⊙ 수신지 포트 번호 : 16비트
- 데이터 영역의 데이터 정보를 처리할 수신 시스템의 프로세스나 응용 프로그램을 말한다.
- TCP 헤더의 송신지 포트와 같은 기능을 수행한다.
⊙ 총 길이 : 16비트
- UDP 헤더와 데이터의 길이를 바이트 단위로 표현
- UDP 메시지에 얼마나 많은 데이터 정보가 포함되었는지 나타낸다.
⊙ 검사합 : 16비트
- 수신 측에서는 이 정보를 사용하여 UDP 헤더와 데이터 및 IP 헤더의 오류를 검사한다
- UDP 표준에서는 검사합이 선택 사항이며, 이 영역을 사용하지 않으면 UDP 패킷의 영역은 0의 값을 가진다.
⊙ 데이터
- 송신지 포트의 응용 계층 프로세스가 만든 데이터 정보
- 크기는 가변적