프로그래밍 농장

TCP / IP 프로토콜 [ address manage / packet delivery ] 본문

TCP-IP 프로토콜

TCP / IP 프로토콜 [ address manage / packet delivery ]

Tennessee201 2021. 6. 13.
728x90

각각의 bevice identify 가능 : bit 값에 따라서 관리(manage)가 간편함

A클래스가 가질수있는 네트워크주소 : 8 bit

B클래스가 가질수있는 네트워크주소 : 16 bit

C클래스가 가질수있는 네트워크주소 : 24 bit

 

- 목적지주소로 사용될수있는 주소

unicast ,broadcast, multicast

 

- 소스주소로 사용될수있는 주소

unicast ( 특별한 주소 1개만 가능 )

 

모두가 0/1일떄 사용되는 주소 ( 0.0.0.0 )

all zero address / all one address

all zero address -> 매우 특수/ 제한적/ but 필수적으로 사용됨 : 처음 device 구매후 설정시 필수사용 -> host와 sever가 소통하면서 DNS, NETWORK 주소등을 설정함 . ( dhcp request ... ) -> 모든 노드가 확인가능하고싶을떄 

 

루프백 주소( loopback address )

127 .. .

시스템내에서 소프트웨어를 test하기위해서 ( ex. 공유기 .. ) 등을 프로세스내에서 소통이 잘되는지 확인하기 위한 주소 -> 시스템 내부에서만 프로세스간 통신을 위해사용 / 네트워크로 나갈수없음 

 

private주소( private address )

주소공간이 32bit뿐이기 때문에 -> global forward 불가능 , 로컬에서만 사용가능

network prefix  (24bit만 사용)

171.16 . .  /  169.254 . .   / 192.168 . . : 공유기주소로 주로사용

network prefix의 마지막 주소 : directed broadcast address 

 

public주소 (public address ) 

전세계적으로 가능 global forwarding 가능 

 

목적지가 broadcast address 까지인 packet은 네트워크 내에서 모든 노드까지전달되지만, 라우터(router)를 만나는 순간 더이상 forward 되지않고 폐기한다. 

->

라우터(router)에서 broadcast packet을 차단(block)하는 이유 : broadcast는 모든 노드에 발생시키기떄문에 overflow가 발생한다. 

 

NAT : private 에 발생된 device들도 public으로 변환해주서어서, globally 하게 사용하능하게 해주는 router

-> 적은 수 에 할당이된 public에 많은 user(device)들을 수용해서 network service를 만들기 위함 

-> privat주소와 public주소 사이를 mapping 해주는 기능을 함. 

 

보통 Network를 설계할때 50-60%가 사용할것이라고 생각하고 구성. -> router의 성능이 50-60프로가 넘어가면 error 발생 :  -> 내가 적은수의 public 주소를 가지고도 많은수의 user들을 service할수있다면 ? -> NAT 

 


 

Packet delivery

 

direct delivery / indirect delivery 공존

 

1. direct delivery가 이루어지는 경우 : sender 와 reciever가 동일 네트워크에 존재할떄 

2. 마지막 router와 destination host 사이일때 

 

-> 라우터에서 

1. packet reception 확인 (수신 패킷확인)

2. destination주소 추출 (목적지주소 추출)

3. 목적지주소와 자신의주소 비교  :  같다면(동일네트워크에 존재) direct delivery    

                                               다르다면 : indirect delivery -> 라우터들을 거쳐서 진행 

 


Forwarding (포워딩) 

목적지로의 경로 결정 후 경로상의 next node에게 패킷을 전송하는것. 

 

- Next-hop 기반 (다음노드) forwading

 전체경로 정보를  라우팅테이블에 반영 X / only next-hop 정보만 반영 

 -> 라우팅 테이블의 크기를 줄일수있음 (메모리사이즈를)

ex) 구글에 접속하려면  20개의 ip주소값을 가져야한다 -> 20 * 32bit -> 구글엔트리 하나에 대해서 640 bit 가 들어있어야함  -> 라우팅메모리가 커짐 : 시스템메모리가 커짐 : 시스템 단가 올라감 : 단가 올라감 

한국에서 구글까지 평균 19개정도의 노드를 거친다 : 라우팅 테이블 

 -> 이때 Next Hop 만 저장함으로써, 효율은 그대로 유지 + 라우팅 테이블의 크기를 줄다는 장점 


- Network-Specific (네트워크 주소) 

host단위의 라우팅 테이블 X /  network prefix 단위의 라우팅 테이블 -> 라우팅 사이즈를 줄일수있다. 

searching process 를 감소시킬수있음

백본 라우팅에 사용되는 dcp프로토콜은 전부 Network=Specific 단위로 되어있음 

(특정지역 , 사이트 단위 ex) 상명대 , 은평구 . . )


- Host-Specific Method (호스트 주소)

로컬 네트워크에서 사용되는 최종목적지 단의 라우팅 테이블의 구조 -> host 단위.

host-specific -> GateWay ->  R 

                                    ->  R

위 와 같은때, host <-> GW 사이에서 호스트 주소단위로 정하여 어떤 라우터로 향할지 결정 

로컬 네트워크에서 최종전달될때 사용 


- Default Method (디폴트 주소)

Default -> 만능키 

Internet = best-effort 서비스

해당하는 노드에 대한 정보(라우팅 테이블)가 없음 

Default entry가 정의되어있음



서브넷이 없는 address 체계에서 forwaing module이 동작하는 방식

패킷 수신 ->  destination address를 추출 -> 주소 비교 (내 주소, 목적지 주소) -> 어떤 클래스인지 확인 -> 클래스에 따라 네트워크 주소 추출 -> . . . . 

 

예제 1 )  인터넷파트에서(class) R1라우터에서의 라우팅 테이블을 구하여라 

170.14.0.0/16  -> 170 = 10101010  :  10

145.80.0.0/16  -> 145 = 10010001  :  10

111.0.0.0/8      -> 111 = 01101111  :  01

192.16.7.0/24   -> 192 = 110000000 : 11

 


- routing(라우팅)  

사전에 routing 정보를 구축하여 각 목적지로의 경로 정보를 구성 

 

라우터의 구조 : input / output / routing processor - 세가지 단계 

-> Switching fabric : 현시점 가장 비쌈 

 

- input port : Physical layer(발생된신호 처리)  -> Data link layer( 0101.. 컴퓨터신호로 변환) -> Queue

- outputport : Queue  -> Data link layer( 0101.. 컴퓨터신호로 변환) -> Physical layer(발생된신호 처리) 

 

기본적인 Switching fabric 구조 : Banyan Switch 

 

 

- Flat routing : 라우터의 엔트리(entry) 갯수가 전부 동일 ( 동일레벨 )  : 소규모 구조 

- Hierarchical routing : [계층적구조] : 영역을 나눈후, 같은 도메인으로 묶였을떄만 동일한 정보공유 -> 확장성이 좋음 ->  라우팅 테이블의 규모가 서로 상이하기 떄문  : 현재 모든 네트워크의 기본 구조 

- Geographical routing : [위치,지리적 라우팅] : ex) GPS정보 , 특수목적으로 사용 

 

 

 

 

 

 

 

 

728x90