Presentation is loading. Please wait.

Presentation is loading. Please wait.

TCP/IP TCP/IP의 이해 TCP UDP IP 한빛미디어(주).

Similar presentations


Presentation on theme: "TCP/IP TCP/IP의 이해 TCP UDP IP 한빛미디어(주)."— Presentation transcript:

1 TCP/IP TCP/IP의 이해 TCP UDP IP 한빛미디어(주)

2 TCP/IP의 이해 네트워크와 네트워크를 연결하는 데 사용하는 프로토콜
전송 제어 프로토콜(TCP : Transmission Control Protocol)과 인터넷 프로토콜(Internet Protocol)을 의미 1983년에 알파넷(ARPANET)의 공식 프로토콜로 채택된 후 빠르게 전파되어 현재 인터넷의 표준 프로토콜 서로 다른 환경에서도 사용 가능하며 인터넷의 기본이 되는 프로토콜 인터넷에 접속하기 위한 프로토콜 중에서 가장 중요한 기능을 하는 TCP와 IP프로토콜 또는 여러 프로토콜의 집합 TCP/IP를 지원하는 네트워크에 연결된 컴퓨터 TCP/IP 지원하는 소프트웨어만 있으면 이 기종간의 통신이 가능

3 TCP/IP 프로토콜 구조 네트워크 접속 계층, 인터넷 계층, 전송 계층, 응용 계층으로 구분
[그림 4-1] OSI 모델과 TCP/IP

4 네트워크 접속 계층(Physical & Data link layer)
운영체제의 네트워크 카드와 디바이스 드라이버 등과 같이 하드웨어적인 요소와 관련되는 모든 것을 지원하는 계층 이더넷, x,MAC/LLC,SLIP,PPP 송신측 컴퓨터 상위 계층으로부터 전달받은 패킷에 물리적 주소인 MAC 주소 정보를 가지고 있는 헤더를 추가하여 프레임 생성, 프레임을 물리 계층으로 전달 수신측 컴퓨터 데이터 링크 계층에서 추가된 헤더를 제거하여 상위 계층인 네트워크 계층으로 전달 프레임의 크기는 네트워크 토폴로지에 의해 결정 네트워크 계층(Network Layer) 인터넷 계층이라도 함 네트워크상의 패킷 전송 제어 IP, ARP, ICMP, IGMP

5 네트워크 계층의 역할은 데이터그램을 정확한 수신지로 전송 송신측
데이터그램 : IP 프로토콜에서 다루는 패킷 데이터 송신측 상위 계층에서 전달받은 패킷에 IP주소를 포함하는 헤더를 추가하여 하위 계층인 데이터링크 계층으로 전달 수신측 하위 계층으로부터 전달받은 패킷의 헤더정보를 확인하고 송신측 컴퓨터의 네트워크 계층에서 추가된 헤더를 제거하여 전송 계층으로 전달 [그림 4-2] 네트워크 계층예서의 패킷 정보

6 전송 계층(Transport Layer)
상위 계층에서 볼 때, 두 개의 호스트간의 자료 전송을 담당하는 계층 TCP, UDP 두 종류의 프로토콜이 사용 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 전송 기능 제공 OSI 모델에서 세션 계층의 일부 기능과 전송 계층에 해당 수신측 상위 계층으로부터 전달받은 데이터를 효율적으로 전송하기 위해 패킷 단위로 분할 하위 계층으로부터 전달받은 패킷을 원래 데이터로 재결합 [그림 4-3] 전송 계층 프로토콜

7 TCP/IP 주소 구조 응용 계층(Application Layer)
해당되는 프로토콜과 서비스에는 Telnet, FTP(File Transfer Protocol), SMTP(Simple Mail Transfer Protocol) 등 인터넷 메일 프로그램이나 웹 브라우저 등이 사용자가 직접 사용하는 TCP/IP의 프로토콜을 이용한 응용 프로그램들로 응용 계층 분류 TCP/IP 주소 구조 [그림 4-4] TCP/IP에서 사용하는 주소

8 물리 주소(MAC 주소) 링크 주소 혹은 WAN이나 LAN에서 정의된 노드의 주소, 이더넷 네트워크 인터페이스 카드(NIC) 6바이트(48비트) 주소 등 이더넷 상에서 각 호스트를 구별하기 위하여 각각의 이더넷 카드에 부여되는 고유 번호를 의미 모든 이더넷 카드는 고유한 식별 번호를 갖게 됨 카드회사에서 제품이 제작될 때 고유한 번호를 할당받음 ipconfig/all 명령어으로 MAC 주소를 알 수 있음 [그림 4-5] MAC 주소

9 인터넷 주소 인터넷상에서는 기존의 물리 주소와 관계없이 각 호스트를 식별할 수 있는 유일한 주소를 지정해야 함
인터넷상에서는 기존의 물리 주소와 관계없이 각 호스트를 식별할 수 있는 유일한 주소를 지정해야 함 현재 인터넷에 연결된 호스트를 유일하게 식별할 수 있는 32비트 주소 체계를 사용 인터넷상의 두 호스트가 동일한 IP 주소를 사용할 수는 없음 [그림 4-6] 인터넷 주소 예

10 포트 주소 데이터를 송신지에서 수신지까지 보내려면 IP 주소와 물리 주소 필요
예) A 컴퓨터가 FTP를 통해 B로 파일을 다운로드하는 동시에, Telnet으로 C 컴퓨터에 접속한다고 할 때 프로세스 식별 주소 필요 TCP/IP에서는 포트 주소 사용 [그림 4-7] 포트 주소

11 계층과 주소와의 관계 [그림 4-8] 계층과 주소와의 관계

12 TCP의 이해 TCP 연결형 데이터 서비스 TCP는 연결 지향, 신뢰성 있는 바이트 스트림 서비스를 제공
메시지를 성공적으로 수신했거나 오류가 발생했다는 것을 알리는 것 신뢰성 있고 순서적인 데이터 전달 서비스 연결형 서비스(connection oriented service)라고 함. 송신측 전송 계층 프로세스와 목적지 전송 계층 프로세스 사이에 연결이라는 논리적 관계가 설정된다는 것임 TCP 연결형 데이터 서비스 TCP 전송 계층 서비스 TCP 포트로부터 수신측 TCP 포트로 바이트들의 스트림을 전송하는 연결형 데이터 전달 서비스 제공 사용자가 연결을 요청하면 TCP 프로토콜과 수신측 TCP 사용자가 연결 설정을 동의하여 TCP 연결이 설정됨

13 연결 지향형 프로토콜 송신측 컴퓨터와 수신 측 컴퓨터가 데이터를 전송하기 전에 데이터 송수신을 위한 연결 통로를 만들고 데이터를 전송하는 프로토콜 신뢰성 있는 데이터 전송이 보장되며 오류가 발생할 경우에는 수신자에게 알려줌 예) TCP 프로토콜 [그림 4-9] 연결 지향형 프로토콜

14 포트번호 포트 TCP가 상위 계층으로 데이터를 전달하거나 상위 계층에서 TCP로 데이터를 전달할 때 상호 간에 사용하는 데이터의 이동통로 상위 계층 프로토콜과 하위 계층 프로토콜은 같은 포트를 사용해야 함 다수의 포트를 활용하여 동시 다운로드 가능 TCP 프로토콜이 여러 개의 포트를 사용해서 상위 계층의 프로그램과 각각 따로 통신하기 때문에 여러 개의 웹 사이트에서 동시에 다운로드 가능 포트 범위는 0~65534 [그림 4-10] TCP 포트를 통한 통신

15 [표 4-1] 잘 알려진 포트 번호 포트 번호 서비스 내용 TCP 20 FTP 데이터 TCP 21 FTP TCP 23
Telnet TCP 25 SMTP TCP 80 HTTP

16 TCP 세그먼트 바이트 스트림을 세그먼트(segment) 단위로 나눔

17 송신지 번호 수신지 포트 번호 순서 번호 확인 응답 번호 헤더 길이 예약 플래그 윈도우 크기 검사 합 긴급 포인터 옵션
[그림 4-12] TCP 헤더

18 수신지 포트 번호 순서 번호 확인 응답 번호 헤더 길이 예약 플래그
세그먼트를 전송하는 호스트에 있는 응용 프로그램의 포트 번호 순서 번호 세그먼트에 포함된 데이터의 첫번째 바이트에 부여된 32비트 부호없는 번호 수신지 TCP에게 세그먼트의 첫번째 바이트가 순서 번호에 해당하는 바이트임을 알려줌 확인 응답 번호 세그먼트를 수신하는 노드가 상대편 노드에게 받으는 바이트의 번호 성공적으로 수신한 마지막 바이트 순서 번호 + 1 헤더 길이 TCP 헤더 길이를 4바이트 워드 값으로 나타냄 예약 나중에 사용하기로 예약된 6비트 필드 플래그 프로토콜의 동작을 제어하는 데 사용 [표 4-2] 플래그 종류 플래그 설명 TURG 긴급 처리 데이터가 있음 ACK 응답 확인 번호 사용 RSH TCP가 받은 데이터를 상위 계층에 전달 RST 연결 재설정 SYN 연결을 초기화하기 위해 순서 번호를 동기화 FIN 데이터 송신 종료

19 윈도우 크기 검사합 긴급 포인터 옵션 상대방에게 유지되어야 하는 바이트 단위의 윈도우 크기 정의
의사 헤드를 포함한 헤드 부분의 오류를 검출하는 검사합 계산 포함 긴급 포인터 URG 플래그 설정 시 긴급 데이터의 마지막 바이트의 순서 번호 이 포인터 값과 순서 번호의 합으로 계산 옵션 송신자가 수신하기를 원하는 세그먼트의 최대 크기를 나타냄 -T [그림 4-13] 검사합

20 TCP 연결 관리 연결 설정(3-way 핸드셰이킹) 연결을 사용하여 응용 프로그램을 식별함
UDP는 포트 번호만을 사용하여 식별 송신자 또는 수신자와 같은 종단을 포트 번호 및 호스트 IP 주소로 정의 종단간 통신을 위한 TCP 연결은 양 종단에 의해서 정의 연결 설정(3-way 핸드셰이킹) [그림 4-15] TCP 연결 설정 과정

21 연결 종료 [그림 4-16] TCP 연결 종료 과정

22 확인 응답 수신측에 데이터가 수신되면 이 사실을 송신 측에 통보하는 것으로 핸드셰이킹이 해당됨
ACK라고 하며 응답 확인이 있어야 다음 데이터를 전송할 수 있음 [그림 4-17] 송신 패킷이 사라진 경우 [그림 4-18] 순서 번호 설정

23 TCP 흐름 제어 TCP는 원래의 데이터를 패킷이라는 작은 단위로 분할하여 전송하기 때문에 수신측의 컴퓨터는 수신한 패킷들을 재결합하여 다시 원래의 데이터로 만들어 주어야 함 한 번에 패킷을 하나씩 송수신한 후에 다음 번 패킷을 송신하는 것보다 한 번에 여러 개의 패킷을 송수신 한 다음 수신 확인 신호를 전송하는 것이 훨씬 더 효율적임 윈도우 크기 한 번에 전송되는 패킷의 개수 수신 버퍼의 크기라고도 함 데이터를 전송할 때 여러 개의 패킷을 한 번에 전송하고, 한 번에 전송되는 전체 패킷의 크기를 TCP 윈도우 크기라고 함 인터넷에서 파일이나 동영상을 다운로드할 때 다운로드 속도가 계속해서 변하는 경우 이러한 현상이 네트워크 자체의 영향과 더불어 TCP 윈도우 크기와도 관련이 있음

24 [그림 4-19] 윈도우 크기를 통한 패킷 전송

25 슬라이딩 윈도우 송신 버퍼 역할을 하는 송신 윈도우를 이동하는 방식 [그림 4-20] 슬라이딩 윈도우

26 UDP의 이해 User Datagram Protocol 비연결 지향 프로토콜
패킷이나 흐름 제어, 단편화 및 전송 보장 등의 기능 등을 제공하지 않음 헤더는 TCP헤더에 비해 간단 상대적으로 통신 과부하가 적음 헤더의 크기는 8바이트(TCP 헤더는 20바이트) 독립적인 제어 메시지 사용하지 않음(TCP 독립적인 메시지 패킷 사용) 요청 메시지와 응답 메시지로 구성 하나의 메시지로도 충분히 적은 양의 데이터 전송에 사용 DNS, DHCP, SNMP

27 UDP 헤더 송신지 포트 번호 수신지 포트 번호 길이 검사합 데이터 송신지 포트 번호 : 16비트
데이터 영역의 데이터 정보를 만든 전송 시스템의 프로세스나 응용 프로그램 TCP 헤더의 송신지 포트 기능 수신지 포트 번호 : 16비트 데이터 영역의 데이터 정보를 처리할 수신 시스템의 프로세스나 응용 프로그램 TCP 헤더의 수신지 포트 기능 길이 : 16비트 UDP 헤더와 데이터의 길이를 바이트 단위로 나타냄 UDP 메시지에 들어있는 데이터 정보의 양을 나타냄 [그림 4-21] UDP 헤더

28 검사합 : 16비트 데이터 이 정보를 사용하여 수신측에서 UDP 헤더와 데이터 및 IP 헤더의 에러를 검사
사용하지 않을 경우 0이 배정됨 데이터 가변적인 크기

29 IP의 이해 네트워크에 접속되어 있는 각 컴퓨터에 고유한 식별 번호가 부여되어야 정확한 데이터 송수신이 가능함
네트워크에 접속되어 있는 각 컴퓨터에 고유한 식별 번호가 부여되어야 정확한 데이터 송수신이 가능함 인터넷에 연결되어 있는 모든 컴퓨터에게 고유의 주소를 부여함. IP 주소(IP Address)라고 함 현재 사용하고 있는 IP 주소 체계는 IP Version 4 8비트 크기의 필드 4개를 이용하여 총 32비트 크기로 주소를 표현 [그림 4-22] IP 주소의 구조

30 IP 주소 체계 네트워크 주소 호스트 주소 네트워크 주소(net id)와 호스트 주소(host id)로 구분
전체 네트워크를 보다 작은 네트워크로 분할하여 각 호스트가 속한 네트워크를 대표하는 데 사용 8비트, 16비트, 24비트의 크기로 분류 호스트 주소 네트워크 주소로 표현되는 네트워크 내부에서 각 호스트의 주소를 표현 전체 32비트에서 네트워크 주소를 제외한 나머지에 해당 [그림 4-23]네트워크 주소와 호스트 주소

31 IP 주소 IP 주소의 효율적인 배정을 위하여 설계 시 클래스라는 개념을 도입
클래스에는 A, B, C, D, E 다섯 가지 종류 이중 D 클래스는 IP 멀티 캐스팅용 E 클래스는 자원 확보를 위한 예비용 실제 사용하는 것은 A, B, C 클래스 세 가지 종류 [그림 4-24] A, B, C 클래스의 IP 주소 구성

32 A 클래스 B 클래스 네트워크 주소로 8비트, 호스트 주소로 24비트를 사용
가장 왼쪽 비트가 “0”이며, 첫 번째 옥텟이 netid(7 비트) 27 = 128 중 126개 사용(2 개는 특수 목적에 사용) 224 = 16,777,216 중 16,777,214 개의 호스트 사용(hostid가 모두 0인 것과 모두 1인 것은 특별한 의미를 갖는 주소) 대형 기관 및 대형 기업 B 클래스 B 클래스를 구분하는 데 사용되는 식별자는 “10”으로 시작되며, 네트워크 주소에 16비트, 호스트 주소에 16비트를 배정하는 클래스 가장 왼쪽 2 비트가 “10”이며, 두개의 옥텟이 netid(14 비트) 214 = 16,384개 사용 가능 hostid로 16비트 사용 216 = 65,536개중 65,534개 호스트(라우터) 사용 가능(2개는 특별한 주소) 중형 기업 및 기관

33 C 클래스 C 클래스를 구분하는 데 사용되는 식별자는 “110”으로 시작
가장 왼쪽 3 비트가 “110”, 세 개의 옥텟이 netid(21 비트) 221 = 2,097,152개의 네트워크를 가질 수 있음 hostid로 8비트 사용(28 = 256) 254개의 호스트(라우터)를 가질 수 있다. 소규모 기관 사용 [그림 4-25] 10진 표기법을 이용한 클래스

34 D 클래스 D 클래스의 IP 주소 시작은 224~239까지 멀티캐스트 용도로 사용
[표 4-3] 각 클래스의 네트워크 수와 호스트 수 클래스 네트워크 수 호스트 수 A 27-2 = 126 = 16,777,214 B 214 = 16,384 = 65,534 C 221 = 2,097,152 =254 D 해당없음 E [그림 4-26] 멀티캐스트

35 E 클래스 사설 주소 E 클래스의 IP 주소 시작은 240~255까지 미래를 위해 남겨놓은 주소
는 전체 컴퓨터에 대한 브로드캐스트 주소로 사용 사설 주소 IP 주소 중 인터넷에서 사용하지 않는 주소 IP 주소 부족을 해결하는 방안 [그림 4-27] 브로드캐스트 [표 4-4] 사설 주소 클래스 사설 주소 A ~ B ~ C ~

36 IP 프로토콜 비연결형 서비스 TCP/IP 프로토콜 계층의 네트워크 계층에서 사용되는 프로토콜
간단한 오류 검사 기능만 있는 신뢰성이 부족한 비연결형 데이터그램 프로토콜 TCP의 경우 : 오류가 발생했을 때 해당 정보를 재전송할 수 있는 기능까지 갖춤 비연결형 서비스 연결을 확립하지 않고 데이터를 전송하는 방법 오류 발생시 재전송 하지 않아 신뢰성 있는 데이터 전송 불가능 상위 계층인 TCP등에서 신뢰성을 보장해야 함 전송 속도가 빠르므로 중요도가 낮은 데이터 전송 시에 많이 사용

37 [그림 4-28] 비연결형 데이터 전송

38 데이터그램 구조 IP 계층의 패킷은 데이터그램(datagram)이라고 함
이 데이터그램은 가변길이의 패킷으로 헤더와 데이터 부분으로 구성 데이터그램의 헤더의 크기는 20~60바이트 헤더에는 패킷을 전달하는 데 필요한 모든 정보를 포함 [그림 4-29] IP 데이터그램 구조

39 버전 헤더 길이 서비스 유형 총길이 인터넷 버전 규정, 현재 버전 4 데이터그램 헤더의 전체 길이
라우터가 처리해야 하는 데이터그램에 대한 규정 총길이 D: Minimize delay T : Maximize throughtout R : Maximize reliability C : Minimize cose [그림 4-30] 서비스 유형 필드(8비트) [그림 4-31] 데이터 길이

40 식별 플래그 단편 오프셋 라이프 타임 각 데이터그램마다 고유하게 설정되는 데이터그램의 번호 식별자 필드의 길이는 16비트
3비트로 구성되며, 패킷의 분할 제어 첫번째 비트는 사용하지 않으며, 두번째와 세번째 비트만 사용 단편 오프셋 단편화된 패킷을 재결합할 때 플래그 필드와 식별 필드를 결합하여 사용 분할된 조각의 원본 데이터에 위치하는 자리를 표시하는 필드: 13비트 라이프 타임 패킷이 네트워크 상에서 생존할 수 있는 시간 규정 데이터그램이 통과하는 최대 라우터 수를 제어하기 위해 사용 데이터그램이 라우터를 통과할 때마다 1씩 감소 필드 값이 0이면 라우터는 해당 데이터그램을 제거 사용자가 정하는 게 아니며, 운영체제에 이미 정해져 있음

41 프로토콜 검사합 송신지 주소 수신지 주소 옵션 IP 계층의 서비스를 사용하는 상위 계층의 프로토콜 정의
패킷 전송 중에 발생하는 헤더 부분의 에러 검사 송신지 주소 송신지의 IP 주소 정의 IP 데이터그램이 수신지에 전송되는 동안 유지되어야 함 수신지 주소 수신지의 IP 주소 정의 옵션 네트워크의 구성과 패킷 라우팅 제어 [그림 4-32] 검사합

42 IPv6 16바이트, 즉 128비트로 구성 주소를 읽기 쉽게 하기 위해 16진수 콜론 표기를 규정
128비트는 길이가 2바이트인 8개의 영역으로 나뉨 16진수 표기법에서 2바이트는 4개의 16진수로 표현되어 전체적으로 32개의 16진수로 표현 [그림 4-33] IPv6 주소 [그림 4-34] 생략된 주소

43 버전 우선순위 흐름 레이블 페이로드 길이 다음 헤더 8비트의 홉 제한 송신지 주소 수신지 주소
[그림 4-35] 연속된 0이 생략된 주소 [그림 4-36] IPv6 패킷 형식

44 IPv4에서 IPv6으로의 천이 전략 인터넷에 많은 시스템이 있으므로 IPv4에서 IPv6로 천이하기에는 많은 시간이 필요
IETF에 의해 고안된 세 가지 천이 전략 [그림 4-37] 천이 전략

45 이중 스택 인터넷의 모든 시스템이 IPv6를 사용할 때까지 IPv4와 IPv6를 동시에 사용함
패킷을 목적지로 보낼 때 버전을 결정하기 위해 송신측에서 DNS에 질의를 함 DNS가 IPv4 주소를 응답한다면 송신측은 IPv4 패킷을 보내고 IPv6 주소를 응답하면 송신측은 IPv6 패킷을 보내게 됨 이중 스택 시스템들은 IPv6 시스템들과 통신하기 위해 IPv6를 사용할 수 있고, 옛날의 시스템들과 통신하기 위해 IPv4를 사용할 수 있음 [그림 4-38] 이중 스택

46 터널링 IPv6를 사용하는 컴퓨터들이 통신하기 위해 IPv4를 사용하는 네트워크 영역을 통과해야 할 때 사용되는 것
IPv6 패킷은 IPv4를 사용하는 네트워크 영역을 통과할 때 IPv4 패킷 내에 캡슐화가 되고, 영역을 통과한 다음 역 캡슐화 됨 [그림 4-39] 터널링

47 헤더 변환 헤더 변환은 대부분의 인터넷이 IPv6를 사용하지만 일부 시스템이 IPv4를 사용하는 경우에 필요
송신측에서는 IPv6를 사용하기를 원하지만 수신측에서 IPv6를 이해하지 못하는 경우, 패킷이 수신측에서 이해할 수 있는 IPv4 형식으로 헤더 형식이 헤더 변환을 통하여 변해야만 함 [그림 4-40] 헤더 변환

48


Download ppt "TCP/IP TCP/IP의 이해 TCP UDP IP 한빛미디어(주)."

Similar presentations


Ads by Google