Download presentation
Presentation is loading. Please wait.
1
Chapter 05. TCP/IP
2
TCP/IP의 이해 IP(인터넷 프로토콜) TCP(전송 제어 프로토콜) UDP(사용자 데이터그램 프로토콜)
3
TCP/IP의 기본 개념을 이해한다. IP의 기본 개념과 체계를 학습한다. TCP의 기본 개념과 특징을 알아본다. UDP를 학습한다.
4
01. TCP/IP의 이해 네트워크는 서로 다른 기종의 컴퓨터로 구성되어 있어 각 네트워크 간에 공통으로 사용할 수 있는 프로토콜의 필요성이 대두되었다. 이에 따라 인터넷에서 컴퓨터 간의 통신이 가능하도록 표준화하여 채택한 통신규약이 바로 TCP/IP이다. 네트워크와 네트워크를 연결하는 데 사용하는 프로토콜인 TCP/IP는 ‘전송 제어 프로토콜 (TCP, Transmission Control Protocol)’과 ‘인터넷 프로토콜(IP, Internet Protocol)’을 의미한다. 인터넷에서 사용하는 응용 프로그램은 대부분 이 TCP/IP 프로토콜을 이용하여 데이터를 교환한다.
5
01. TCP/IP의 이해 TCP/IP 프로토콜은 네트워크 접속 계층, 네트워크 계층, 전송 계층, 응용 계층으로 구분된다.
6
01. TCP/IP의 이해 네트워크 접속 계층 TCP/IP에서는 하위 계층인 물리 계층과 데이터 링크 계층을 특별히 정의하지 않았 으며, 단지 모든 표준 및 임의 네트워크를 지원할 수 있도록 하고 있다. 데이터 링크 계층의 역할을 하는 TCP/IP 프로토콜에는 이더넷, x, MAC/LLC, SLIP, PPP 등이 있다. 네트워크 접속 계층의 송신 측 컴퓨터에서는 상위 계층에서 전달받은 패킷에 물리 적 주소인 MAC 주소 정보가 있는 헤더를 추가하여 프레임을 만든 후 그 프레임을 하위 계층인 물리 계층에 전달한다. 수신 측 컴퓨터에서는 데이터 링크 계층에서 추가한 헤더를 제거하여 상위 계층인 네트워크 계층으로 전달한다.
7
01. TCP/IP의 이해 네트워크 계층 네트워크 계층(Network Layer)은 ‘인터넷 계층’이라고도 하며, 네트워크의 패킷 전송 을 제어한다. 데이터를 전송할 때 경로는 네트워크 계층에서 선택하는데, TCP/IP 프 로토콜에는 IP와 ARP, ICMP, IGMP가 있다. TCP/IP에서 가장 중요한 프로토콜 중 하나인 IP는 네트워크의 주소 체계를 관리하고, 데이터그램을 정의하며, 전송에 필요한 경로를 결정한다. 네트워크 계층의 송신 측 컴퓨터에서는 상위 계층에서 전달받은 패킷에 논리적 주소 인 IP주소를 포함하는 헤더를 추가하여 하위 계층인 데이터 링크 계층으로 전달한다. 수신 측 컴퓨터에서는 하위 계층에서 전달받은 패킷의 헤더 정보를 확인한 후 송신 측 컴퓨터의 네트워크 계층에서 추가한 헤더를 제거하여 상위 계층인 전송 계층으로 전달한다.
8
01. TCP/IP의 이해
9
01. TCP/IP의 이해 전송 계층 전송 계층(Transport Layer)은 상위 계층에서 볼 때 두 호스트 간의 데이터 전송을 담당하는 계층으로, TCP와 UDP 프로토콜을 사용한다. 전송 계층의 역할은 네트워크 양단의 송수신 호스트 간에 신뢰성 있는 전송 기능을 제공하는 것으로, OSI 참조 모델에서는 세션 계층의 일부와 전송 계층에 해당한다. TCP/IP에는 시스템의 논리 주소와 포트가 있어 각 상위 계층의 프로세스를 연결하 여 통신한다. TCP는 전송되는 패킷에 오류와 중복이 없게 하고, 보낸 순서대로 상대편이 받을 수 있도록 신뢰성 있는 데이터 전송을 보장하는 프로토콜이다. 신뢰성이 있는 만큼 헤더의 오류코드에 대응할 수 있는 각종 정보가 들어 있다.
10
01. TCP/IP의 이해 응용 계층 TCP/IP 프로토콜의 범위는 응용 계층(Application Layer)의 프로토콜까지 포함하는 데, 해당 프로토콜에는 FTP(파일 전송), SMTP(이메일), SNMP(Simple Network Management Protocol : 네트워크 관리) 등이 있다. TCP/IP 프로토콜을 이용한 응용 프로그램 중에서 사용자가 직접 사용하는 인터넷 메일 프로그램(아웃룩 익스프레스)이나 웹브라우저(인터넷 익스플로러) 등을 응용 계층으로 분류할 수 있다.
11
01. TCP/IP의 이해 TCP/IP 주소의 구조 물리 주소
물리 주소(MAC 주소)는 링크 주소 또는 통신망에서 정의된 노드의 주소, 이더넷 네트워크인터페이스 카드(NIC) 6바이트(48비트) 주소 등을 말한다. 인터넷 주소 인터넷에서는 기존 물리 주소와는 별도로 각 호스트를 식별할 수 있는 유일한 주 소를 지정해야 한다. 포트 주소 수신지 컴퓨터까지 전송하려면 IP 주소와 물리 주소가 필요하다. 인터넷 통신의 최종 목적은 한 프로세스가 다른 프로세스와 통신할 수 있도록 하는 것이다.
12
01. TCP/IP의 이해
13
02. IP(인터넷 프로토콜) 인터넷에 연결된 모든 컴퓨터에는 고유의 주소가 부여되는데, 이를 ‘IP 주소’라고 한다.
현재 사용하는 IP 주소 체계는 IP Ver. 4이다. IP 주소는 8비트 크기의 필드 네 개를 모아서 구성한 32비트(4바이트) 논리 주소다. ×××.×××.×××.×××, 즉 처럼 .(점)으로 구분한 10진수 형태 네 개로 구성된다. 한 바이트가 가질 수 있는 10진수는 0~255이므로, IP 주소의 값은 에서 까지다.
14
02. IP(인터넷 프로토콜) 일반 우편 주소를 시, 동, 번지 등으로 구분하는 것처럼 IP 주소도 네트워크 주소(Net ID)와 호스트 주소(Host ID)로 구분한다. 네트워크 주소는 전체 네트워크를 좀 더 작은 네트워크로 분할하여 각 호스트가 속 한 네트워크를 대표한다. 네트워크 주소는 8비트, 16비트, 24비트 크기로 분류한다. 호스트 주소는 네트워크 주소로 표현하는 네트워크 내부에서 각 호스트의 주소를 표 현하는 역할을 하며, 전체 32비트에서 네트워크 주소를 제외한 나머지에 해당한다.
15
02. IP(인터넷 프로토콜) 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비트가 로 시작하면 E 클래스로 분류한다.
16
02. IP(인터넷 프로토콜) A 클래스 A 클래스는 네트워크 주소로 8비트, 호스트 주소로 24비트를 사용한다. [그림 5-10] 을 보면 네트워크 주소의 가장 왼쪽에 해당하는 비트는 0으로 고정되어 있는데, 이 것이 A 클래스를 구분하는 데 사용하는 식별자다. 첫 번째 바이트의 첫 비트가 0으로 시작하기 때문에 맨 처음 숫자는 0~127로 시작 하며, 범위는 에서 까지가 된다. 하지만 은 사용하지 않는 주소이고, 127.×.×.×는 시스템 루프백 주소(가상으 로 할당한 인터넷 주소)라서 사용하지 않는다. 따라서 실제로 사용하는 주소는 1~126까지로, ~ 가 된다. 가장 왼쪽 비트가 0이며, 첫 번째 옥텟이 Net ID(7비트) 2^7=128 중 126개 사용(두 개는 특수 목적에 사용) 2^24=16,777,216 중 호스트 16,777,214개 사용(Host ID가 모두 0인 것과 모두 1 인 것은 특별한 의미가 있는 주소) 대형 기관 및 기업에서 사용
17
02. IP(인터넷 프로토콜) B 클래스 B 클래스를 구분하는 데 사용하는 식별자는 10으로 시작한다. 네트워크 주소에 16비 트, 호스트 주소에 16비트를 배정하는 클래스다. IP 주소의 시작이 128~191로 시작하고, 기본 네트워크 마스크는 이다. 네트워크 주소는 ~ 까지고, 호스트 주소는 2바이트로 호스트 65,534개를 구성할 수 있다. 이것은 A 클래스와 동일하게 네트워크 주소(0.0)와 브로드캐스트 주소( )를 제 외한 호스트의 수다. IP 주소가 인 호스트는 네트워크에 속하며, 호스트 주소는 1.1이다. 가장 왼쪽 2비트가 10이며, 옥텟이 두 개인 Net ID(14비트) 2^14=16,384개 사용 가능 Host ID로 16비트 사용 2^16=65,536개 중 호스트(라우터) 65,534개 사용 가능(두 개는 특별한 주소) 중형 기관 및 기업에서 사용
18
02. IP(인터넷 프로토콜) C 클래스 소규모 네트워크에서 가장 많이 사용하는 클래스로 C 클래스를 구분하는 데 사용하는 식별자는 110으로 시작한다. 호스트 배정에 총 8비트를 사용할 수 있으므로 호스트를 최대 254개 사용할 수 있다. IP 주소의 시작이 192~223으로 시작하며, 기본 네트워크 마스크는 이다. 네트워크 주소는 ~ 까지고, 호스트 주소는 1바이트로 호스트 주 소는 254개 사용할 수 있다(0, 255 제외). IP 주소가 인 호스트는 네트워크에 속하며, 호스트 주소는 100이다. 가장 왼쪽 3비트가 110이며, 옥텟이 세 개인 Net ID(21비트) 2^21=네트워크를 2,097,152개 가질 수 있음 Host ID로 8비트 사용(2^8=256) 호스트(라우터)를 254개 가질 수 있음 소규모 기관에서 사용
19
02. IP(인터넷 프로토콜)
20
02. IP(인터넷 프로토콜) D 클래스 D 클래스 IP 주소는 224~239까지로 시작하며, 멀티캐스트(데이터 수신 대상이 네트 워크에 연결된 일부 컴퓨터) 용도로 사용한다. E 클래스 E 클래스 IP 주소는 240~255까지로 시작하며, 미래에 사용하려고 남겨놓은 주소다. 는 전체 컴퓨터에 대한 브로드캐스트(네트워크에 연결된 전체 컴퓨 터를 수신 대상으로 하는) 주소로 사용한다.
21
02. IP(인터넷 프로토콜)
22
02. IP(인터넷 프로토콜) 사설 주소 공인 IP주소의 부족으로 외부 네트워크와 내부 네트워크 간에 라우터 같은 장비를 사용하여 연결할 때 모든 컴퓨터에 공인 IP를 주는 것을 대신하여 내부적으로 DHCP를 통한 사설 IP배분으로 네트워크를 연결하는 것을 사설 IP주소 체계라고 함 외부로 나갈때는 라우터에 연결되어 있는 공인 IP주소를 사용하여 나가고 정보가 들어올 때는 라우터가 다시 사설 IP에 맞게 배분하는 방식으로 사용 A 클래스: ~ B 클래스: ~ C 클래스: ~
23
02. IP(인터넷 프로토콜) IP 프로토콜 연결형(Connection-Oriented) 서비스
IP는 TCP/IP 프로토콜 계층의 네트워크 계층에서 사용하는 프로토콜이다. TCP는 오류가 발생하면 해당 정보를 재전송할 수 있는 신뢰성 있는 연결 지향형 프 로토콜인 반면, IP는 간단한 오류 검사 기능만 있어 신뢰성이 보장되지 않는 비연결 형 데이터그램 프로토콜이다. 즉, IP는 패킷을 수신지까지 최선을 다해 전송하지만, 전송 완료까지는 보장하지 않 는다. 연결형(Connection-Oriented) 서비스 송수신자 사이에 논리적 연결을 확립하고 데이터를 전송하는 방법이다. 연결형은 전송 계층에 해당되는 기능으로, 앞에서 살펴본 TCP의 방식이다. 비연결형(Connectionless) 서비스 송수신자 간에 논리적인 연결을 확립하지 않은 채 데이터를 전송하는 방법이다. 비연결형 서비스는 UDP 방식이며, 신뢰성 있는 데이터 전송을 할 수 없어 상위 계 층인 TCP 등에서 신뢰성을 보장해야 한다.
24
02. IP(인터넷 프로토콜) 네트워크에서 송신 측이 동일한 수신 측으로 전송하는 데이터그램이 다양한 경로를 통해 도착할 수도 있다. 전송 경로는 매번 달라진다
25
02. IP(인터넷 프로토콜) 데이터그램의 구조 IP 계층의 패킷을 ‘데이터그램(Datagram)’이라고 한다. 이 데이터그램은 가변 길이 이며, 헤더와 데이터 부분으로 구성된다. 데이터그램의 헤더는 크기가 20~60바이트고, 패킷을 전달하는 데 필요한 모든 정 보를 포함한다.
26
02. IP(인터넷 프로토콜) 버전 : IP 헤더 안에 있는 버전(Version) 번호 필드(4비트)는 인터넷 버전을 규정하 며, 현재 버전은 4다. 헤더 길이 : IP 헤더 안에 있는 다음 4비트 필드는 데이터그램 헤더의 전체 길이를 4바이트 단위로 나타낸다. 서비스 유형 : 8비트 필드는 라우터가 처리해야 하는 데이터그램 규정을 나타낸다.
27
02. IP(인터넷 프로토콜) TOS는 IP 데이터그램을 전달하는 특정 서비스 품질(Quality of Service) 기능을 제공하려고 고안된 4비트의 서브필드로 각 비트는 0과 1의 값을 가질 수 있는데, 오직 한 비트만 1의 값을 가진다 서비스 유형에 따라 지연, 처리량, 신뢰성, 비용 등을 설정할 수 있으며, 상호 배타적 이어서 하나의 값이 1로 설정되면 나머지 값은 무조건 0이다.
28
02. IP(인터넷 프로토콜) 총 길이 식별 플래그 단편 오프셋 16비트 IP헤더와 IP데이터그램의 길이를 바이트 단위로 정의
데이터그램이 네트워크에서 더 작은 조각으로 분할되는 경우 패킷의 단편들이 재결 합할 때 동일한 메시지의 일부임을 식별하기 위한 정보 플래그 패킷의 분할을 제어 단편 오프셋 식별, 플래그, 단편 오프셋을 함께 사용하여 패킷의 재결합에 사용 단편 오프셋은 분할된 조각이 원본 데이터에서 자리 표시 필드의 역할
29
02. IP(인터넷 프로토콜) 라이프타임(TTL, Time To Live) 프로토콜
패킷이 네트워크에서 생존할 수 있는 시간을 규정 데이터그램이 통과하는 최대 라우터 수를 제어하기 위해 사용 데이터그램이 라우터를 통과할 때마다 TTL값은 1씩 감소하며 이것이 0이 되면 라우 터는 해당 데이터그램을 폐기한다. 수신지를 찾지 못한 패킷이 네트워크를 계속 돌아다니는 것을 방지. TTL은 운영체제마다, 프로토콜별로 미리 정해져 있음 프로토콜 IP계층의 서비스를 사용하는 상위 계층의 프로토콜을 나타냄
30
02. IP(인터넷 프로토콜) 검사합 ‘검사합(Checksum)’은 TCP/IP 프로토콜에서 많이 사용하는 오류 제어 방법으로, 패킷 전송 중 발생하는 헤더 부분의 오류를 검사한다. 송신자가 전송하는 패킷에 검사합을 함께 보내면 수신자는 패킷과 함께 검사합을 계산해 조건을 만족하면 패킷을 받아들이고, 그렇지 않으면 패킷을 폐기한다.
31
02. IP(인터넷 프로토콜) IPv6 현재 사용하는 IP 버전은 4로, IPv4로 표현한다. IPv4 주소는 32비트로 구성되며, 네 트워크 ID와 호스트 ID 부분으로 나뉘어 있다. 또한 2-level 주소 구조(Net ID, Host ID)로 되어 있다. IP는 네트워크 규모에 따라 세 가지 규모의 클래스에 멀티캐스트 클래스와 예약된 클래스를 합한 총 다섯 가지 클래스로 구성되어 있다. IPv4 주소는 산술적으로 주소를 43억 개 할당할 수 있지만, 클래스 별 주소 분류 방 식 때문에 사용하지 않는 주소가 많다. 유비쿼터스 시대에는 각각의 단말기마다 IP가 부여되는 환경이 필요하므로 기존 IPv4를 사용하면 IP 주소가 부족할 것이다. IPv6은 128비트로 구성되며, 긴 주소를 쉽게 읽을 수 있도록 16비트씩 :(콜론)으로 나누어 각 필드를 16진수로 표현하는 방법을 사용한다. 기존 IPv4 주소도 IPv6 주소로 표현할 수 있는데, 하위 32비트에는 IPv4주소를 그대 로 채우고 상위 비트는 모두 0으로 채우는 방식을 사용한다.
32
02. IP(인터넷 프로토콜) IPv6 주소 체계 IPv6 주소는 16바이트(128비트)로 구성되며, 주소를 읽기 쉽도록 16진수 콜론으로 표현한다. 128비트는 길이가 2바이트인 영역 여덟 개로 나뉘며, 16진수 표기법에서 2바이트는 16진수 네 개로 표현하여 전체적으로 16진수 32개로 표현한다.
33
02. IP(인터넷 프로토콜) 128비트 IP 주소는 단축해서 표현할 수 있는데, 콜론 두 개 사이에 있는 수(섹션) 네 개에서 앞쪽의 0은 생략할 수 있다. 이런 생략 방식을 이용하면 0056은 56으로, 000D는 D로 0000은 0으로 표기할 수 있다.
34
02. IP(인터넷 프로토콜) 0으로만 구성된 섹션은 [그림 5-21]처럼 0을 모두 지우고, 콜론 두 개로 대치할 수 있는데, 주소당 한 번만 허용된다. 섹션 두 개에 0이 있다면, 그 중 주소 한 개에서만 생략 방식을 이용할 수 있다.
35
02. IP(인터넷 프로토콜) IPv6 데이터그램 IPv6의 각 패킷은 기본 헤더와 페이로드(Payload)로 구성되며, 페이로드는 선택적인 확장 헤더들과 상위 계층의 데이터로 구성한다. 기본 헤더는 40바이트며, 페이로드는 65,535바이트까지 차지한다.
36
02. IP(인터넷 프로토콜) 기본 헤더의 종류는 다음과 같다. 버전 : 4비트 IP 버전을 나타내며, 값은 6이다.
우선순위 : 4비트 동시 접속에 대한 패킷의 우선순위를 규정한다. 흐름 레이블 : 24비트 데이터의 특정 흐름을 다룰 수 있도록 설계된 것이다. 페이로드 길이(Payload Length) : 16비트 기본 헤더를 제외한 IP 데이터그램의 전체 길이를 규정한다. 다음 헤더(Next Header) : 8비트 데이터그램에서 기본 헤더의 다음 헤더를 정의한다.
37
02. IP(인터넷 프로토콜)
38
02. IP(인터넷 프로토콜) IPv4와 IPv6의 패킷 헤더와 비교
그 기능을 우선순위와 흐름 레이블 필드가 대체한다. 총 길이 필드 또한 제거되어 페이로드 길이 필드로 대체된다. 식별, 플래그, 옵션 필드는 기본 헤더에서 제거되고, 이 필드는 확장 헤더에 포함된다.
39
02. IP(인터넷 프로토콜) 전환 기술(IPv4에서 IPv6으로)
전환 기술은 IPv4 네트워크망과 IPv6 네트워크망 간에 주소 변환기를 이용하여 IP를 상호 연동시키고, 게이트웨이를 이용하여 IPv4와 IPv6 주소 체계를 호환하는 기술이다. 이 기술은 IPv4 클라이언트가 IPv6 서버에 접속하거나 반대로 IPv6 클라이언트가 IPv4 서버에 접속할 때 사용한다. 1. 응용계층 게이트웨이 방식(응용계층) 2. 전송계층 릴레이 방식(전송계층) 3. 헤더 변환 방식(네트워크계층)
40
02. IP(인터넷 프로토콜) 1. 응용 계층 게이트웨이 방식(응용 계층)
응용 계층 게이트웨이 방식은 변환(트랜잭션) 서비스를 위한 ALG(응용 수준 게이트 웨이)로, 웹사이트 정보를 숨기고 캐시 메커니즘으로 서비스의 성능을 향상시키는 데 사용한다. ALG가 두 프로토콜(IPv4와 IPv6)을 동시에 지원할 때는 두 프로토콜 간 변환 메커니 즘으로 사용할 수 있다. 응용 계층 게이트웨이 방식은 응용 계층에서 변환되며, 각 서비스는 IPv4와 IPv6에 밀폐되어 있어 FTP, DNS, 텔넷 서비스 등 응용 프로토콜에 내장된 주소를 변환하는 데 용이하다. 하지만 각 서비스를 위한 ALG는 IPv4와 IPv6에서 모두 실행되어야만 한다.
41
02. IP(인터넷 프로토콜) 2. 전송 계층 릴레이 방식(전송 계층)
전송 계층 릴레이 방식은 TCP/UDP의 IPv4 세션과 TCP/UDP의 IPv6 세션을 중간에 서 릴레이한다. 전송 계층 릴레이 방식에서 TCP 릴레이 서버는 여러 동작 과정을 거 쳐 전송계층에서 전환된다. TCP 요청이 릴레이 서버에 도착하면, 네트워크 계층은 수신지가 서버의 주소가 아 니어도 TCP 요청을 TCP 계층으로 전송한다. 그러면 서버는 TCP 패킷을 전송받아 송신지 호스트와 TCP를 연결한다. 서버는 실제 수신지로 TCP 연결을 하나 더 생성한 후 연결이 두 개 구축되면, 서버 는 이 연결 중 하나에서 데이터를 읽어 나머지 하나의 연결에 기록한다.
42
02. IP(인터넷 프로토콜) 3. 헤더 변환 방식(네트워크 계층)
헤더 변환 방식은 네트워크 계층(IP)에서 IPv6 패킷 헤더를 IPv4 패킷 헤더로, 또는 IPv4패킷 헤더를 IPv6 패킷 헤더로 변환하는 방식이다. 인터넷은 대부분 IPv6을 사용하여 헤더변환이 필요 없지만, IPv4를 사용할 때는 헤 더 변환이 필요하다. 헤더 변환은 IP 계층에서 변환을 의미하며, IPv4 패킷을 IPv6 또는 그 반대로 헤더를 변환하는 것은 SIIT(Stateless IP/ICMP Translation)에서 정의한다.
43
03. TCP(전송 제어 프로토콜) TCP 연결형 데이터 서비스
TCP 전송 계층 서비스는 송신 측 TCP 포트에서 수신 측 TCP 포트로 바이트의 스트 림을 전송하는 연결형 데이터 전달 서비스를 제공한다. TCP 사용자가 연결을 요청하면, TCP 프로토콜과 수신 측 TCP 사용자가 연결 설정에 동의하여 TCP 연결을 설정한다. 연결 지향형 프로토콜 연결 지향형 프로토콜은 송신 측 컴퓨터와 수신 측 컴퓨터가 데이터를 전송하기 전에 먼저 데이터를 송수신할 수 있는 연결 통로를 만들고 데이터를 전송하는 프로토콜을 말한다.
44
03. TCP(전송 제어 프로토콜) 포트 번호 포트는 TCP가 상위 계층으로 데이터를 전달하거나 상위 계층에서 TCP로 데이터를 전달할 때 상호 간에 사용하는 데이터의 이동 통로를 말한다. 통신할 때 여러 웹사이트에서 파일을 동시에 다운로드할 수 있다. 파일을 동시에 다운로드할 수 있는 이유는 TCP 프로토콜이 포트를 여러 개 사용해 서 상위 계층의 프로그램과 각각 따로 통신하기 때문이다. TCP 포트 범위는 0~65,534까지의 정수다.
45
03. TCP(전송 제어 프로토콜) 웹서비스나 이메일 서비스 등은 클라이언트가 편리하게 접속할 수 있도록 해당 서 비스에 미리 할당해 놓은 포트 번호를 사용한다. 주요 인터넷 서비스에 정해 놓은 포트 번호를 ‘잘 알려진 포트 번호’라고 하며, 1~1023까지 할당되어 있다. 웹서비스는 HTTP 프로토콜을 사용하므로 포트 번호는 80이다. 우리가 웹브라우저를 사용하여 웹서버에 접속할 때 포트 번호를 입력하지 않아도 자동으로 80번이 할당된다.
46
03. TCP(전송 제어 프로토콜) TCP 세그먼트 TCP 프로토콜은 전송을 위해 바이트 스트림을 세그먼트 단위로 나눈다.
47
03. TCP(전송 제어 프로토콜)
48
03. TCP(전송 제어 프로토콜) 송신지 포트 번호(Source Port Address)
이 필드는 세그먼트를 전송하는 호스트에 있는 응용 프로그램의 포트 번호로, 16비 트의 포트 번호는 0~65,535 범위 내에 있을 수 있다. 수신지 포트 번호(Destination Port Address) 이 필드는 수신지 호스트에서 수행하는 프로세스가 사용하는 포트 번호로, 클라이 언트가 수신지 호스트를 요청하는 서버라면 대부분은 잘 알려진 포트 번호다. 순서 번호(Sequence Number) 이 필드는 세그먼트에 포함된 데이터의 첫 번째 바이트에 부여된 것으로, 32비트 부호 없는 번호다. 0부터 시작해서 2^32-1을 초과하면 다시 0으로 되돌아온다. TCP는 신뢰성 있는 연결을 보장하려고 전송하는 각 바이트마다 번호를 부여하는데 , 순서 번호는 수신지 TCP에 세그먼트의 첫 번째 바이트가 순서 번호에 해당하는 바이트라는 것을 알려준다. 확인 응답 번호(Acknowledgement Number) 이 필드는 세그먼트를 수신하는 노드가 상대편 노드에서 수신하려는 바이트의 번 호다. 이 번호는 성공적으로 수신한 마지막 바이트의 순서 번호+1이다.
49
03. TCP(전송 제어 프로토콜) 헤더 길이 예약(Reserved) 플래그 윈도우 크기(Window Size) 검사합
나중에 사용하려고 예약된 6비트 필드다. 플래그 프로토콜의 동작을 제어하는 데 사용하는 비트 단위의 플래그다. 윈도우 크기(Window Size) 이 필드는 상대방이 유지해야 하는 바이트 단위의 윈도우 크기를 정의하며, 필드의 길이가 16비트이기 때문에 윈도우의 최대 크기는 65,535바이트다. 검사합 이 필드에는 의사 헤드를 포함한 헤드 부분의 오류를 검출하는 검사합 계산이 포함 된다.
50
03. TCP(전송 제어 프로토콜) 상위 계층에서 사용하는 오류 검출 방법인 검사합을 수행하는 과정을 살펴보자. 송 신 측에서는 다음 과정을 거친다. ① 데이터 단위를 각각 n(보통 16)비트인 섹션 m개로 나눈다. ② 모든 섹션은 합을 만들려고 1의 보수를 사용하여 서로 더한다. ③ 합은 보수화되어 검사합이 된다. ④ 검사합의 값을 데이터와 함께 보낸다. 수신 측에서는 다음 과정을 거친다. ① 데이터 단위를 각각 n비트인 섹션 m개로 나눈다. ③ 합은 보수화된다. ④ 결과가 0이면 오류가 없는 것이고, 그렇지 않으면 오류가 발생한 것이다
51
03. TCP(전송 제어 프로토콜) TCP 연결 관리 연결 설정(3-Way 핸드셰이킹)
포트 번호만 사용하여 응용 프로그램을 식별하는 UDP와는 달리 TCP는 연결을 사용 하여 응용 프로그램을 식별한다. 연결 설정(3-Way 핸드셰이킹)
52
03. TCP(전송 제어 프로토콜) 연결 종료
53
03. TCP(전송 제어 프로토콜) 확인 응답 수신 측에서 데이터를 수신했을 때 이 사실을 송신 측에 통보하는 것으로, 핸드셰이 킹이 해당된다. 확인 응답을 ‘ACK(ACKnowledgement)’라고 하는데, 이 응답 확인이 있어야 다음 데 이터를 전송할 수 있다.
54
03. TCP(전송 제어 프로토콜) 수신 측에서 데이터를 수신한 후에도 네트워크 문제로 재전송될 때가 있다.
이때는 이미 수신한 데이터이므로 재전송한 데이터는 폐기해야 되는데, 순서 번호 를 설정하여 구분할 수 있다.
55
03. TCP(전송 제어 프로토콜) TCP 흐름 제어
패킷을 전송할 때 네트워크 상황에 따라 패킷의 도착 순서가 바뀔 수도 있고, 중간 에서 사라지는 패킷을 한 번에 하나씩 송수신하는 것보다 여러 패킷을 한 번에 송수 신한 후 수신 확인 신호를 전송하는 것이 훨씬 효율적이다. 패킷을 세 개 전송할 때 한 번에 하나씩만 전송하면 확인 작업을 세 번해야 하는데, 한 번에 전송하고 전송한 전체 패킷의 확인 신호를 받으면 훨씬 효율적일 것이다. 한 번에 전송하는 패킷의 개수를 ‘윈도우 크기’ 또는 ‘수신 버퍼의 크기’라고 한다. 즉, 데이터를 전송할 때 한 번에 전송할 수 있는 전체 패킷의 크기를 ‘TCP 윈도우 크 기’라고 하는데, 윈도우 크기가 크면 한 번에 여러 패킷을 전송할 수 있다.
56
03. TCP(전송 제어 프로토콜)
57
03. TCP(전송 제어 프로토콜) 슬라이딩 윈도우
송신 측 컴퓨터는 윈도우 크기에 따라 1~4번까지 패킷을 전송하고, 수신 측 컴퓨터 에서 수신 확인 ACK 신호를 수신하면 ACK 신호에서 요청한 5번 패킷 위치로 송신 윈도우를 오른쪽으로 옮긴다. 다시 윈도우 안의 패킷들을 전송하고, 수신 측 컴퓨터에서 ACK 신호를 수신하면 ACK 신호에서 요청한 9번 패킷 위치로 송신 윈도우를 옮긴다. 이처럼 송신 버퍼 역할을 하려고 송신 윈도우를 이동하는 방식을 ‘슬라이딩 윈도우 (Sliding Window)’라고 한다.
58
04. UDP(사용자 데이터그램 프로토콜) UDP(User Datagram Protocol)는 RFC 768 문서에 정의된 비연결 지향 프로토콜을 말한다. TCP(연결 지향 프로토콜)와 달리 패킷이나 흐름 제어, 단편화 및 전송 보장 등의 기능은 제공하지 않는다. UDP 헤더는 TCP 헤더에 비해 간단하므로 상대적으로 통신 과부하가 적다. UDP 헤더의 크기(8바이트)는 TCP 헤더의 크기(20바이트)보다 작다. UDP를 사용하는 대표적인 응용 계층 프로토콜에 DNS(Domain Name System), DHCP(Dynamic Host Configuration Protocol), SNMP 등이 있다.
59
04. UDP(사용자 데이터그램 프로토콜)
60
04. UDP(사용자 데이터그램 프로토콜) 송신지 포트 번호 : 16비트 수신지 포트 번호 : 16비트 총 길이 : 16비트
데이터 영역의 데이터 정보를 만든 전송 시스템의 프로세스나 응용 프로그램을 말한다. TCP 헤더의 송신지 포트와 같은 기능을 수행한다. 수신지 포트 번호 : 16비트 데이터 영역의 데이터 정보를 처리할 수신 시스템의 프로세스나 응용 프로그램을 말한다. 총 길이 : 16비트 UDP 헤더와 데이터의 길이를 바이트 단위로 표현하며, UDP 메시지에 얼마나 많은 데이 터 정보가 포함되었는지 나타낸다. 검사합 : 16비트 수신 측에서는 이 정보를 사용하여 UDP 헤더와 데이터 및 IP 헤더의 오류를 검사한다. UDP 표준에서는 검사합이 선택 사항이며, 이 영역을 사용하지 않으면 UDP 패킷의 영역 은 0의 값을 가진다. 데이터 송신지 포트의 응응 계층 프로세스가 만든 데이터 정보로, 크기는 가변적이다.
61
감사합니다.
Similar presentations