파이톨치

[네트워크] 3계층 본문

카테고리 없음

[네트워크] 3계층

파이톨치 2024. 4. 11. 00:02
728x90

IP 주소체계 버전 4임. 32비트 이진수 

3계층은 호스트를 구분하는 일이다. 호스트를 구분하기 위해 사용하는 주소를 IP이다. 

전세계적으로 구분 가능해야 함. IoT 가면 좀 부족함. 우리가 배우는건 버전 4임. 

클래스로 구분되는 주소체계임. 네트워크 주소와 호스트 주소로 IP주소는 구성된다. 

데이터 패킷을 전송한다. 네트워크를 라우터가 찾아주는거임. 네트워크 안에서는 호스트 번호를 보고 찾는거임. 

클래스가 있는데 A, B, C, D, E 클래스가 있다. 맨 앞에 비트 8비트를 가지고 본다. 시작이 0이면, 10이면, 110이면, 1110이면, 1111이면 순서이다. 참 쉽죠? 이걸 보고 32비트 중에서 어디까지가 네트워크 주소인지 확인하는 것이다. 오호라? 

2개는 예약되어서, 2 ** n -2 개 주소 할당할 수 있다. 클래스 A가 50프로를 차지한다. 왜냐면 32비트 중에서 0으로 시작하는 것들은 a클래스니깐. B는 25퍼임. 재밌네. A를 받는 네트워크는 전세계에서 128개의 기관만 받을 수 있음. 구글 이런 애들인가? 

 

서브넷은 하나의 IP 주솔ㄹ 네트워크 내부에서 적절히 분할하여 사용함. 클래스 A를 받았다고 생각했을 때, 32.210.15.5면. 이걸 게이트 웨이 하나가 관리하는거야? 호스트 주소를 내부적으로 쪼개서 쓰겠다는거임. 엄청 큰 네트워크를 쪼개서 서브넷으로 만들기. 그 안에도 라우터가 있는거임. 서브넷 마스크라는 걸 사용함. 255.0.0.0 아 이게 서브넷이었어? 255.255.255 클래스 c인 경우임. 엎애 24비트가 네트워크 주소야 라는 말이다. 미띈. 근데 이 마스크로 뭐한다고? 255.255.255.224 면 1111111.1111111.111111111.11100000 인데, 그럼 호스트 주소 중에서 앞에 3비트 까지 앞의 3비트를 더 사용하겟다는 것이다. 나머지 5비트가 호스트 주소이다. 쥰내 복잡하네? 3비트니까 8개의 작은 서브넷으로 구성되어 있다는 이야기임. 128,66.12.1 , 255.255.255.0일 때 호스트는 1이다. 원래 클래스 B인데, 12를 서브넷의 주소로 보는 것임. 서브넷이 255개 있는거임. 128.66.12 까지 네트워크 아이디이고, 마지막 바이트만 호스트 아이디이다. 

사설 주소. 클래스 A, B 이런거는 라우터가 인식해서 동작하는 IP이다. 홈 네트워크는 공인 아이피 하나만 있고 나머지는 사설 주소이다 192.168은 사설 망에서만 인식하는 주소이다. IPv4는 개수가 제한적인, 잘 돌아가는 이유는 사설주소를 사용하기 때문이다. 

챕터 목표 네워크 계층 서비스의 뒤에서 일어나는 원리의 이해
- 네트워크 서비스 모델
- 포워딩 vs 라우팅
- 라우터가 어떻게 동작하는지
- 브로드 캐스트와 멀티 캐스트
네트워크 계층 - 세그먼트를 캡슐화한 패킷을 host에게 전송한다.
- ”모든” 호스트와 라우터에서 네트워크 계층 프로토콜이 동작한다.
- 라우터는 본인을 거쳐가는 모든 패킷의 헤더 필드를 검사한다.
3계층은 포워딩과 라우팅만 한다. 3계층은 속도만 빠르면 된다. loss, order, timing은 모두 4계층의 역할이다.
포워딩 인풋 포트에서 아웃풋 포드로 패킷을 보내는 것
라우팅 soure에서 dest로 패킷을 보내는 경로를 결정하는 것
이 때, 테이블을 참조하여 결정
모든 라우터가 best effort 한다. shotest path 알고리즘을 돌린다. 각각의 라우터는 최선이라고 판단되어 돌리지만, 결과적으로 최선이 아닐 순 있다. 이 때, 라우팅 테이블을 참조한다. 받은 패킷 중에서 최선의 것을 업데이트한다.
네트워크 서비스 모델 ??? 보장? 시간? , 인터넷
패킷 네트워크 네트워크 계층에서 call 세팅이 없다.
- 라우터는 엔드 라우터에 대한 상태가 없으며, end-to-end에 대한 상태가 없다. 현재 상태만 있다.
- 네트워크 수준의 연결 개념이 없다.
- 대상 호스트 주소를 사용해 패킷을 전송한다. 네트워크 주소를 보고 라우팅을 한다. 호스트 주소는 관심이 없다.
패킷 포워딩 테이블 도착한 패킷의 헤더에 있는, IP 목적지 주소를 통해 포워딩을 결정한다.
목적지 주소의 범위에 따라 어떤 포트로 보낼지 결정한는데, 너무 많은 경우 어떻게 해야 할까?
Logest Prefix Matching 대상 주소에 대한 포워딩 테이블 항목을 찾을 때, 대상 주소와 일치하는 가장 긴 주소 접두사를 사용한다.
컨트롤 플레인 A-B-C 에서 C가 죽었을 때, A는 바로 알지 못하고 B가 먼저 알고 있다. 때문에 A는 최선의 판단을 하지 못할 수 있다. 하지만 결국, 업데이트 되는 과정을 거처 C가 죽음을 안다.
패킷과 인터넷 사용 이유 # 왜 패킷을 사용해야 하는가? 엣지가 복잡한 것을 하고, 코어 네트워크에서는 간단하게 한다. end system이 똑똑한 것임.
네트워크 라우터 구조 (개념) 입력 포트로 들어온 패킷이 드렁왔을 때, 포워딩 테이블을 참조해 라우팅하고 아웃풋 포트로 넘겨주는 포워딩을 한다. 이 때, 라우팅을 위해 라우팅 프로세서가 동작하고, 포워딩을 위해 하이 스피드 스위치가 존재한다. 라우팅은 sw이고, 포워딩은 hw이다.
코어 네트워크 문제 발생 연속적으로 응답이 없을 때(time out), 코어 네트워크 문제가 발생했을 때, 로스가 발생한다고 판단하고 천천히 보낸다. 이것은 호스트가 스스로 판단하는 것이다. 이는 컨제스쳔 컨트롤이라 한다.
☹️ 플로우 컨트롤은 목적지가 알려주는 것이다.
라우터 역할 routing 알고리즘과 프로토콜을 sw 관점에서 수행한다.
패킷을 인풋 포트에서 아웃풋 포트로 hw 관점에서 포워딩 해준다.
스위칭 fabrics 종류 (비교 문제) 인풋 버퍼에서 아웃풋 버퍼로 패킷을 적절하게 전송하는 것
fabric을 스위칭 하는 것임.
메모리를 통한 스위칭 버퍼 -> 메모리 복사 -> 버퍼 구조임. (초창기), cpu가 관리함. 메모리 대역폭 떄문에 느리다.
버스를 통한 스위칭 버스 contention: 버스 대역폭에 의존적이다.
누가 버스를 사용할지 경쟁을 해야하는 구조임. 한계가 존재함.
interconnection network를 통한 스위칭 크로스바 구조:: 대역폭이 조금 적지만, mash 형태로 연결함.
가장 최신의 구조임.
아웃풋 포트 버퍼링과 스케쥴링을 수행한다. 패킷은 congestion에 의해, 버퍼의 부족에 의해 손실(lost)될 수 있다.
우선순위 스케쥴링을 한다.
아웃풋 포트 queueing 아웃풋 포트 버퍼가 overflow 되어서 queueing(delay)와 로스가 발생한다.
들어오는 양 >> 나가는 양 일 때 발생한다.
인풋 포트 queueing fabric이 (input port 결합보다)느릴 때 생긴다.
인풋 버퍼가 overflow 되어서 생기는 문제이다.
Head Of the Line(HOL) Blocking: 둘이 같은 곳을 보내려고 할 때, 겹치면 안 보내져서, 서로 보내고 싶은데 버스가 겹치는 상황에서 블로킹이 생긴다.

728x90