Book/CCNA

TCP/IP

Hayley Shim 2016. 1. 5. 14:31

Why?

TCP/IP(Transmission Control Protocol/Internet Protocol)

- 미국 국방성(DoD : Department of Defense)에서 데이터의 무결성(integrity) 보장 및 보존, 전쟁 발발시 통신을 유지하기 위해 개발

* 데이터 무결성 : DB에 들어있는 데이터의 정확성을 보장하기 위해 데이터의 변경이나 수정시 제한을 두어 안전성을 저해하는 요소를 막아 데이터의 상태들을 항상 옳게 유지하는 것

 

What?

TCP(Transmission Control Protocol)

1. 연결 지향형(connection-oriente) 프로토콜

- 어플리케이션으로부터 받은 큰 정보 블록을 여러 개의 세그먼트로 분해

*세그먼트 : 데이터의 단위 / 브리지, 라우터, 허브, 스위치 등에 의해 묶여있는 네트워크의 한 부분, 세그먼트는 수용 노드 수 결정, 그 길이에 의해 노드 수가 제한됨

- 각 세그먼트에 번호를 부여하고 순서대로 정렬

- 세그먼트 전송 전 전송측 호스트의 TCP 프로토콜은 연결을 설정하기 위해 수신지의 TCP 프로토콜과 접촉함. 이렇게 생성된 것을 가상회선(virtual circuit)이라 함

- 이러한 세그먼트들이 전송된 후에 전송측 호스트의 TCP는 수신지의 마지막 TCP 가상회선세션(virtual circuit session)으로부터 정상적으로 수신되었다는 승인 응답(ACK)을 기다리고 비정상적으로 수신된 세그먼트는 재전송함

- 처음 연결시, 두 TCP 레이어는 수신측의 TCP가 ACK를 회신하기 전에 전송될 정보의 양 합의

- 사전에 모든 사항이 합의되면 경로는 신뢰성 있는 통신을 위한 준비가 완료됨

2. full duplex

3. 신뢰성 있는 정확한 프로토콜

4. 에러 점검

5. 매우 복잡

 

TCP 세그먼트 포맷

 

UDP

1. 비연결형 프로토콜(connectionless protocol)

- 가상회선을 설정하지 않음

- 데이터를 전송하기 전에는 상대방에 연결을 시도하지도 않음

- UDP는 어플리케이션 자신이 신뢰성 확보를 전제로 하기 때문에 UDP 자신은 신뢰성 확보를 위해 아무 일도 하지 않음 ex)NFS(Network File System)

2. TCP는 상위 레이어로부터 데이터 스트림을 받지만 UDP는 정보의 블록을 받아 세그먼트로 분할

3. 세그먼트를 차례대로 정렬하지 않으며 세그먼트가 수신지에게 어떤 순서로 도착하든 상관하지 않음

4. 세그먼트를 전송하고 잊어버림. 세그먼트를 추적학나 점검하지 않으며 정상적인 도착 여부를 알리는 것조차 허용하지 않아 신뢰할 수 없는 프로토콜로 간주

5. 네트워크에서 많은 대역폭을 차지하지 않음. 적은 네트워크 자원 사용(RFC 768)

 

UDP 세그먼트 포맷

 

 

 TCP UDP 
 Sequenced Unsequenced 
 Reliable Unreliable 
 Connection-oriented Connectionless 
 Virtual circuit Low overhead 
 Acknowledgments No acknowledgment 
 Windowing flow control No windowing or flow control of any type 

<Comparison TCP Vs. UDP>

 

포트번호(Port Number)

- TCP와 UDP는 다른 대화들이 네트워크 사이를 통과하는 것을 동시적으로 계속 추적하기 때문에 상위 레이어와 통신하기 위해 포트번호 사용

- 1024 미만의 번호 : 잘 알려진(well-known) 포트 번호로 간주되며 RFC 3232에 정의

- 1024 이상의 번호 : 다른 호스트와 세션을 연결하기 위해 상위 레이어에서 사용되고 TCP에 의해 TCP 세그먼트에서 발신지와 수신지 어드레스로 사용됨

 

 TCP UDP 
 Telnet 23 SNMP 161 
 SMTP 25  TFTP 69
 HTTP 80  DNS 53
 FTP 20, 21  BooTPS/DHCP 67
 DNS 53
 HTTPS 443
 SSH 22
 POP3 110
 NTP 123
 IMAP4 143

<Key protocols that use TCP and UDP>

 

Why?

IP(Internet Protocol)

- 인터넷 레이어의 다른 모든 프로토콜과 상위 레이어의 모든 프로토콜도 IP 사용

- DoD 모델의 모든 경로는 IP를 통해 이루어짐

* 인터넷 레이어 프로토콜

- IP : Internet Protocol

- ICMP : Internet Control Message Protocol

- ARP : Address Resolution Protocol

- RARP : Reverse Address Resolution Protocol

- Proxy ARP : Proxy Address Resolution Protocol

 

What?

IP

1. IP는 본질적으로 인터넷 레이어

2. IP는 각 패킷의 어드레스를 참조. 그런 다음 라우팅 테이블을 이용하여 가장 좋은 경로를 선택하여 패킷을 어디로 보낼 것인지 결정. DoD 모델의 하단에 있는 네트워크 접속 레이어 프로토콜은 IP를 갖지 않고 단지 물리적 링크(로컬 네트워크)만 취급

3. 네트워크 상에서 장비 확인 방법

1) 논리적 어드레스 이용

2) 하드웨어 어드레스 이용

4. IP는 세그먼트를 수신하여 데이터그램(패킷)으로 분해

5. 수신측의 IP는 데이터그램(패킷)을 세그먼트로 재결합

6. 각 데이터그램에는 송신측과 수신측의 IP 어드레스가 부여됨

7. 데이터그램을 수신하는 각 라우터(레이어 3 장비)는 패킷의 IP 어드레스를 근간으로 라우팅 결정

 

IP 포맷

 

ICMP(Internet Control Message Protocol)

1. 네트워크 레이어에서 작동하여 다른 많은 서비스를 위해 IP 사용

2. 관리 프로토콜. IP를 위한 메시지 서비스 제공자. 해당 메시지는 IP 데이터그램으로서 전달됨

3. ICMP Router Discovery Message(RFC 1256) : ICMP에 추가된 규정으로서 호스트가 게이트웨이로 가는 경로를 용이하게 찾을 수 있는 확장된 기능 제공

- Destination Unreachable : 라우터가 IP 데이터그램을 더이상 전송할 수 없으면 그 상태를 알리기 위해 ICMP 사용. 예를 들어, 라우터가 알 수 없는 네트워크를 향한 패킷을 수신하면 라우터는 발신지로 ICMP 수신지 도착 불능 메시지를 되돌려 보냄

- Buffer full/source Quence : 데이터그램을 수신하기 위한 라우터의 메모리 버퍼가 가득찰 경우 ICMP를 사용하여 이 메시지를 전송

- Hops/Time Exceeded : 각 IP 데이터그램에 hop이라 불리는 통과할 수 있는 일정한 수의 라우터가 할당됨. 각 IP 데이터그램이 그 수신지에 도달하기 전에 주어진 hops의 한계에 도달하면 그 데이터그램을 수신한 마지막 라우터는 해당 데이터그램을 삭제. 해당 데이터그램을 삭제한 라우터는 발신지 호스트로 해당 데이터그램의 소멸을 알리는 메시지를 전송하기 위해 ICMP 사용

- Ping(Packet Internet Groper) : 인터네트워크상 장비에 대한 물리적 연결상태를 점검하기 위해 ICMP 에코 메시지 사용

- Traceroute : ICMP 종료시간을 이용하여 트레이스루트는 패킷이 인터네트워크를 횡단할 때 경로에 따라 걸리는 시간을 알아내는데 사용

 

ARP(Address Resolution Protocol)

1. 알고 있는 IP 어드레스로부터 호스트의 MAC(Media Access Control) 어드레스(하드웨어 어드레스)를 알아내는데 사용

2. IP 요구에 따라 ARP는 로컬 네트워크에 해당 IP 어드레스를 갖는 장비에게 자신의 하드웨어 어드레스로 응답하라는 요청메시지를 브로드캐스트로 송신

3. 다시말해 ARP는 소프트웨어 어드레스(IP 어드레스)를 하드웨어 어드레스(ex,수신지 장비의 이더넷 카드 주소)로 전환시켜 해당 장비의 소재를 알아냄

 

RARP(Reverse Address Resolution Protocol)

1. 디스크가 없는 단말 등이 IP 주소를 얻기 위해 사용하는 프로토콜

2. RARP는 MAC 어드레스를 포함하는 해당 MAC 어드레스에 할당된 IP 어드레스 정보를 요청하는 패킷을 보냄으로써 디스켓 없는 장비의 IP 어드레스를 알아냄

3. RARP 서버라고 불리는 수신지 장비는 요청에 대한 응답을 보냄으로써 해당 장비의 IP 어드레스가 확인됨. RARP는 해당 장비의 MAC 어드레스 정보를 사용. IP 어드레스를 알아내어 해당 장비의 ID에 관한 정보를 완성

 

Proxy ARP(Proxy Address Resolution Protocol)

1. 동일 서브넷에서 다른 노드를 대신하여 ARP Request에 응답하도록 하는 프로토콜

2. 서브넷 상의 장비들이 라우팅이나 Default gateway를 설정하지 않고 원격 서브넷에 도달하도록 도와줌

3. 특정 노드들의 그룹을 대표/대신함

4. 서브넷을 여러 세그먼트로 세분화

Proxy ARP 장점

- 유효한 모든 다른 라우터들의 라우팅 테이블을 분배하지 않고도 네트워크 상에 하나의 라우터에 추가될 수 있음

Proxy ARP 단점

- 네트워크 세그먼트 상의 트래픽 양을 증가시킴

- IP와 MAC 주소 간 매핑을 처리하기 위해 큰 ARP 테이블을 가지게 됨

 

IP addressing

IP address

- IP 네트워크 상 각 장비에 숫자로 된 구분자를 할당한 것으로 네트워크 상의 장비 위치를 가리킴

- IP 주소는 하드웨어가 아닌 소프트웨어인데 하드웨어는 NIC(Network Interface Card-네트워크 접속카드)에 하드코딩 되어 있으며 로컬 네트워크상에서 호스트를 찾는데 사용됨

IP addressing은 호스트가 어떤 형태의 LAN 상에 있든 상관없이 네트워크와 다른 네트워크 사이의 호스트 간 통신이 용이하도록 설계

 

IP Terminology

비트(bit) : 한자리 숫자 0 혹은 1

바이트(byte) : 패리티 비트 사용 여부에 따라 7 혹은 8비트.

옥텟(Octet) : 항상 8 비트. Base-8 어드레스 방식(8비트로 이루어진 수)

네트워크 어드레스(Network Address) : 패킷을 원격지 네트워크에 보내기 위한 라우팅으로 사용되는 어드레스. 예)10.0.0.0, 172.16.0.0, 192.168.0.0

브로드캐스트 어드레스(Broadcast Address) : 네트워크상의 모든 노드에 정보를 보내기 위해 호스트와 어플리케이션이 사용됨

- 모든 네트워크와 노드에 브로드캐스트 할 경우 : 255.255.255.255

- 네트워크 172.16.0.0에서 모든 서브넷과 호스트에 브로드캐스트 할 경우 : 172.16.255.255

- 네트워크 10.0.0.0에서 모든 서브넷과 호스트에 브로드캐스트 할 경우 : 10.255.255.255

 

Hierarchical  IP Addressing Scheme

- IP address는 32비트의 정보로 구성. 이 비트는 네개의 부분으로 나뉘고 바이트 혹은 옥텟이라 부르고 각각 1바이트(8비트)로 구성. 아래와 같이 세가지 형식으로 표현

1) 10진수 형식 : 172.16.30.56

2) 2진수 형식 : 1010100.00010000.00011110.00111000

3) 16진수 형식 : AC.10.1E.38

- Hierarchical Address 장점 : 많은 수의 어드레스 수용가능(32비트 어드레스 공간은 각 비트가 0 또는 1의 두가지 값을 가질 수 있으므로 2^32이 되며 약 43억이 됨)

- IP address는 모든 32비트를 평면적인 어드레싱에서와 같이 유일한 식별자로 취급하는 대신에 어드레스의 일부가 네트워크 어드레스로 지정되고 다른 부분은 서브넷과 호스트 어드레스나 혹은 노드 어드레스로 지정됨

 

네트워크 어드레싱(Network Addressing)

- 네트워크 어드레스 : 유일하게 네트워크를 식별해냄. 같은 네트워크 안에서 모든 기기는 IP 어드레스의 부분을 네트워크 어드레스로 공유함

- 노드 어드레스(호스트 어드레스) : 네트워크 상의 기기들에게 유일하게 식별되도록 부여됨. 어드레스의 이 부분은 반드시 고유한 것이어야 하는데 이는 그룹인 네트워크와는 달리 특정 기기를 개별적으로 식별해야 하기 때문

- 네트워크의 크기에 따라 네트워크 내의 클래스를 구성 

 

네트워크 어드레스 범위

1) 클래스 A

- 클래스 A 네트워크 어드레스의 첫 바이트의 첫 비트는 항상 off 상태 혹은 0

- 이는 클래스 A 어드레스는 반드시 0부터 127까지여야 한다는 의미

  0xxxxxxx : 나머지 7비트를 모두 off한 다음, 다시 모두 on하면 A 클래스 네트워크의 어드레스 범위

  ex) 0 0000000 = 0

       0 1111111 = 127

- 그러므로 클래스 A 네트워크의 첫번째 옥텟(octet)에서 0부터 127까지 정의

 

2) 클래스 B

- 클래스 B 네트워크는 첫번째 바이트의 첫비트는 항상 on 상태여야 하고 두번째 비트는 항상 off 상태여야 함

 ex) 10 000000 = 128

      12 111111 = 191

- 위와 같이 첫번째 바이트가 128에서 191까지로 설정될 경우 클래스 B 네트워크로 한정 가능

 

3) 클래스 C

- 클래스 C 네트워크에서 첫번째 옥텟의 처음 두개의 비트는 항상 on상태여야 하고 세번째 비트는 항상 off 상태여야 함. 앞의 클래스와 같은 과정으로 어드레스 범위를 찾기 위해 2진수를 10진수로 전환

 ex) 110 00000 = 192

       110 11111 = 223

- 그러므로 IP 어드레스가 192에서 시작해서 223까지라면 클래스 C의 IP 어드레스

 

4) 클래스 D,E

- 224부터 255 사이의 어드레스는 클래스 D와 클래스 E 네트워크를 위해 확보

- 클래스 D는 멀티캐스트 어드레스에 사용

- 클래스 E는 과학적인 목적으로 사용

 

5) 특수 목적

- 일부 IP 어드레스는 특별한 목적으로 사전에 설정되어 있으며 네트워크 관리자는 노드에 해당 어드레스를 부여해서는 안됨

 Address Function 
 네트워크 어드레스가 모두 0  이 네트워크 혹은 세그먼트를 뜻함
 네트워크 어드레스가 모두 1  모든 네트워크를 뜻함
 네트워크 127.0.0.1  루프 테스트를 위해 지정해둔 어드레스
내부 노드를 지정하여 해당 노드가 테스트 패킷을 네트워크의 트래픽 발생 없이 자신에게 보낼 수 있도록 허용함
 노드 어드레스가 모두 0  이 노드를 뜻함
 노드 어드레스가 모두 1  해당 네트워크의 모든 노드를 뜻함
예를 들어, 128.2.255.255는 네트워크 128.2의 모든 노드를 뜻함(B클래스 어드레스)
 전체 IP 어드레스가 0으로 설정된 경우  Cisco 라우터에서 기본 설정 경로를 지정하기 위해 사용
 전체 IP 어드레스가 1로 설정된 경우
(255.255.255.255와 같음)
 현 네트워크상 모든 노드에게 브로드캐스트 함
모두 1인 브로드캐스트라 불리기도 함

<Reserved IP address>

 

클래스 A 어드레스

- 첫 바이트는 네트워크 어드레스에 할당하고 나머지 세 바이트는 노드 어드레스에 사용

- 클래스 A의 형식 : Network.Node.Node.Node

- 클래스 A의 네트워크 어드레스는 1바이트이고 첫비트는 지정. 나머지 일곱 비트는 사용 가능

- 그러므로 클래스 A의 네트워크는 최대 128개까지 구축가능

  1) 어드레스 0 ( 0000 0000 ) : 기본 설정 경로를 위해 지정

  2) 어드레스 127 : 네트워크의 상태를 진단하기 위해 지정

- 실제 클래스 A 네트워크 어드레스로 사용할 수 있는 개수는 126

- 각각의 클래스 A 어드레스는 기기의 노드 어드레스를 위해 3바이트(24비트) 할당. 즉, 2^24 혹은 16,777,216 가지의 어드레스의 조합 가능

- 어드레스가 모두 0인 것과 1인 것은 미리 지정이 되었기 때문에 실제 클래스 A 네트워크를 위한 최대의 사용 가능한 번호는 2^24 - 2로 16,777,214가지

 

클래스 A의 유효한 호스트 ID

- 클래스 A 네트워크의 유효한 호스트 ID를 찾는 방법

 1) 10.0.0.0 : 모든 호스트 비트의 off 상태는 네트워크 어드레스

 2) 10.255.255.255 : 모든 호스트 비트의 on 상태는 브로드캐스트 어드레스

- 유효한 호스트 ID : 네트워크 어드레스와 브로드캐스트 어드레스의 사이 번호

  10.0.0.1 ~ 10.255.255.254

- 0 또는 255도 유요한 호스트 ID

 

클래스 B 어드레스

- 처음 두개의 바이트가 네트워크 어드레스로 할당, 나머지 두개의 바이트는 노드 어드레스에 사용

- 클레스 B의 형식 : Network.Node.Node.Node

- 모든 클래스 B 네트워크 어드레스는 2진수 1과 그 다음 자리에 0으로 시작하도록 설계됨. 이는 사용할 수 있는 자리가 14비트 자리이므로 클래스 B 네트워크 어드레스의 수는 16,314(2^14)

- 클래스 B 네트워크에서는 2바이트를 노드 어드레스로 사용. 216에서 두개의 사전 지정된 양식(모두 0인 것과 모두 1인 것)을 빼면 각 클래스 B를 위해 사용 가능한 노드 어드레스는 총 65534

 

클래스 B의 유효한 호스트 ID

- 클래스 B 네트워크의 유효한 호스트 ID를 찾는 방법

1) 176.16.0.0 : 모든 호스트 비트의 off 상태는 네트워크 어드레스

2) 176.16.255.255 : 모든 호스트 비트의 on 상태는 브로드캐스트 어드레스

- 유효한 호스트 ID : 네트워크 어드레스와 브로드캐스트 어드레스의 사이 번호

176.16.0.1 ~ 176.16.255.254

 

클래스 C 어드레스

- 처음 세 바이트는 네트워크 어드레스로 할당, 나머지 한 바이트는 노드 어드레스를 위해 사용

- 클래스 C의 형식 : Network.Network.Network.Node

- 각각의 유일한 클래스 C 네트워크는 노드 어드레스를 위해 1바이트 사용

- 클래스 C 네트워크는 28혹은 256에서 두개의 사전 지정된 양식(모두 0인 것과 모두 1인 것)을 빼면 254개의 노드 어드레스를 갖음

 

클래스 C의 유효한 호스트 ID

- 클래스 C 네트워크의 유효한 호스트 ID를 찾는 방법

1) 192.168.100.0 : 모든 호스트 비트의 off 상태는 네트워크 어드레스

2) 192.168.100.255 : 모든 호스트 비트의 on 상태는 브로드캐스트 어드레스

- 유효한 호스트 ID : 네트워크 어드레스와 브로드캐스트 어드레스의 사이 번호

192.168.100.1 ~ 192.168.100.254

 

Private IP Address

- 사설 네트워크 상에서 사용되는 주소, 인터넷과 연동되지 않음

- IP 주소 공간 절약. 모든 네트워크 상의 모든 호스트는 실제 routable IP 주소를 가진다면 IP 주소는 이미 고갈되었을 것

- Private IP 주소를 사용함으로써 ISPs, corporations, home users는 인터넷에 그들의 네트워크를 연결하기 위해 상대적으로 작은 그룹만 필요. 이는 경제적. 왜냐하면 내부 네트워크 상 사설 IP 주소를 사용하기 때문

- 이를 위해 ISP와 corporation은 사설 IP 주소를 인터넷 상에 사용하기 위한 주소로 변환해주는 Network Address Translation(NAT)가 필요

- 인터넷으로 전송하기 위해 같은 공인 IP 주소 사용 가능

 Address Class Reserved Address Space 
 Class A 10.0.0.0 ~ 10.255.255.255 
 Class B  172.16.0.0 ~ 172.31.255.255
 Class C  192.168.0.0 ~ 192.168.255.255

 

IPv4 Address Types

Layer-2 broadcast

- LAN 상의 모든 노드들에 전송

- hardware broadcast로 알려짐

- Hardware 주소는 6 bytes(48 bits)이고 45:AC:24:E3:60:A5 형식

- Broadcast 주소는 2진법에서 모두 1이고 hexadecimal에서 FF.FF.FF.FF.FF.FF

 

Layer -3 Broadcasts

- 네트워크 상 모든 노드들에 전송

- Broadcast message는 broadcast 도메인 상에 모든 호스트에 도달하는 메시지 ex) broadcast message 예 : Address Resolution Protocol(ARP) request

- 하나의 호스트가 하나의 패킷을 가질 때, 이는 목적지의 논리 주소(IP)를 앎

- 목적지로 패킷을 보낼 때 목적지가 다른 IP 네트워크 상에 거주한다면 호스트는 패킷을 default  gateway로 전송해야 함

- 목적지가 로컬 네트워크 상에 있다면 소스는 패킷을 직접 목적지로 전송할 것. 소스는 프레임을 전송할 때 필요한 MAC 주소를 가지고 있지 않기 때문에 소스는 로컬 broadcast domain 내 모든 장비들에게 broadcast message를 전송할 것

 

Unicast  Address

- 단일 인터페이스를 위한 주소. 단일 목적지 호스트로 패킷을 전송하기 위해 사용

- Unicast는 NIC(Network Interface Card)에 할당된 단일 IP 주소이고 패킷에서 목적지 IP 주소 ex)DHCP client  request

- LAN 상의 호스트는 같은 LAN 상의 DHCP 서버를 살펴보면 FF.FF.FF.FF.FF.FF layer-2 broadcast와 목적지 255.255.255.255 layer-3 broadcast를 보냄

- 라우터는 DHCP 서버를 의미하는 broadcast message를 알 것. 왜냐하면 이는 destination port number 67(BootP server)를 가지고 다른 LAN 상의 DHCP 서버의 IP 주소에 request 메시지를 전송할 것임

- DHCP 서버 IP 주소가 172.16.10.1이라면 호스트는 255.255.255.255 DHCP client broadcast request 메시지를 보내고 라우터는 broadcast 메시지를 172.16.10.1의 특정 목적지 주소로 변경

 

Multicast Address

- 단일 소스로부터 전송되어 다른 네트워크 상 많은 장비 간에 전송되는 패킷. One - to - many

- Multicast는 point-to-multipoint communication을 가능하게 함

- Multicast는 브로드캐스트 도메인 상의 모든 호스트로 메시지를 전송하지 않고도 다수의 수신자가 메시지를 수신하게끔 함

- Multicast는 IP multicast group 주소로 메시지나 데이터를 보냄으로써 동작

- 라우터는 호스트들이 group 주소를 구독하게끔 패킷 복사본을 전송. 이는 broadcast와 차이

- 호스트들은 224.0.0.9로 지정된 multicast 패킷을 수신할 것

- Broadcast LAN 상의 모든 호스트들은 프레임을 받으면 목적지 주소를 읽고 만일 같은 multicast group일 경우 해당 프레임을 버림

- Multicast 주소의 범위 : 224.0.0.0 ~ 239.255.255.255(classful IP 주소에 기반한 Class D 주소)

 

*출처 : CCNA from 2011.

   

광고 수익은 기부 활동에 사용됩니다

정보를 얻으신 분들은 광고 클릭 부탁드려요 :)

 

 

 

 

 

'Book > CCNA' 카테고리의 다른 글

VLSM(Variable Length Subnet Masks)  (0) 2016.01.05
Subnetting  (0) 2016.01.05
STP(Spanning Tree Protocol)  (0) 2016.01.05
Layer 2 Switching  (0) 2016.01.05
Data Encapsulation  (0) 2016.01.05