17네트워크 레이어 설명하면서 큐잉할 때 큐가 어떤식으로 동작하는가 주소를 찾는 방식

스위칭 페브릭은 마더보드안에있는 구리선으로 된 pci버스이다.

실제 들어온 데이터 나가는 데이터를 처리하는 곳은
NIC라고 하는 네트워크 인터페이스 카드에서 처리한다.
들어오면 패킷이 나가야되는 번호를 갖고 테이블 룩업을 해서 찾아서 나간다.
포워딩 데이터 플레인에서 하는것은 데이터를 내보내는 기능을 한다.
앞에서 네트워크 카드를 해부해보면 기능별 블록을 3개로 나눌 수 있는데 나누는 기준은 레이어기준이다.

L1까지 연결한 선을 이더넷케이블이라고하면
어떤 아날로그 신호가 들어온다
L1에서 line termination이라고 되어있는데
physical layer 동작을 해준다.
이것을 가지고 디모듈레이션하고
아날로그 신호를 디지털 신호로 바꾸어주는 기능을 한다.
1010의 바이너리로 들어오면
오다가 에러가 나지 않았는지를 체크해봐야하는데
피지컬레이어에서 가장 가까이 데이터를 전송하고 에러체크를 하는 구간이
링크레이어이다.
링크레이어도 패킷처럼 프레임이라는 것이 있다
여기서는 대표적으로 이더넷 기술을 쓰고

이 데이터 형태를
이더넷 프레임이라고 한다.
이더넷 프레임 안에는 ip 패킷이 들어간다.
이더넷프레임이 처리하는 프로세스파트가 있고
링크레이어 프로토콜 파트가 있고
이더넷에서 잘 받았으면 안으 것을 디캡슐레이션 한다.
안에있는 패킷을 꺼내서(디캡슐래이션하여) L3메모리에 큐잉을 한다.

그래서 L3메모리 버퍼를 큐잉버퍼라고 한다.
큐잉 버퍼에 패킷이 계속 싸인다.
메모리 사이즈보다 더 많은 패킷이 도착하게 된다면
버린다.
L3에서 테이블 룩업해서 어디로 나갈지 결정을 해서

다음과 같은 스위칭 페브릭(switching fabric)에서
어느쪽으로 들어오고있다 그리고 어떤 포트로 나가야한다는 정보를 받아서 내보낸다.
내보낼 때 나가는 포트의 정보를 포워딩 테이블 룩업을 통해서
선정을 한다.
선정하는 방식은 LPM이라고 하는longest prefix matching
가장 길게 앞부분이 매칭이되는 포트를 선택하는 것이 룰이다.
패킷이 두가지가 있다고 보면

1번패킷이 왔다
라고하면 앞자리는 다똑같다.

그다음이 0인데 어떤 인터페이스로 보내야하는가
0번이다.
나머지두개는 1이니까 미스메치이다.

2번째 패킷이 왔을 땐 2번이 가장 알맞다.(시험)
큐는 FIFO 구조이다.
Head of the line(hol) blocking problem
앞에 있는 것이 막고있는 상황
예를들어

빨간 패킷이 1번인터페이스와 3번인터페이스에 동시에 도착했는데 둘 다 4번 인터페이스로 둘 다가야한다.
만약 미세하게 1번이 먼저 왔다면 1번이 보내는동안
3번은 기다려야한다.

뒤쪽에 있는 초록색을 보자
연한초록색칸은 빨간색을 보내는 동안 휴지기이다.
1번이 4번가는동안 3번은 5번으로 갈 수 있다.
이렇게 HOL blocking problem을 회피하려면
인터페이스별로 큐를 나누어서 저장을 하면 된다.

나가는 포트(outgoing 포트)도 큐가 필요하다
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
18성능문제 -delay loss 딜레이 어떻게 계산하는지 알아야한다
트랜스미션 딜레이=패킷사이즈/용량

비트하나가 구리선이 될 수 있고 광케이블이 될 수 있고 1비트가 실제로 날아가는데 걸리는 시간을 프로파게이션 딜레이(물리적인딜레이이다.)
구하는 방법
프로파게이션 딜레이=전기적신호/속도
ex)광케이블
전기적 신호=3*10^8
광케이블의 프로파게이션딜레이:
100/3.10^8
이 4개의 딜레이 중에서 가장 성능에 위협적인 것은
큐잉딜레이이다.
5g쪽은 서버사이드에 리스폰스가 굉장히 빨리 와야한다.
미래에는 의료쪽에 로봇이 수술을 하는데
이경우 로봇의 움직임에 딜레이가 없어야하기때문에
딜레이처리가 중요하다
사용자트레픽은 계속 증가하게 되어있다.
궁극적으로 큐잉딜레이를 어떻게 관리를 해야하는지가 중요하다.

프로세싱딜레이
큐잉딜레이-차들이 가기 위해서 마지막 차가 가는시간까지 계산해야한다.
톨처리를 하는데 걸리는 시간:transmission delay

트랜스미션 딜레이=패킷사이즈/용량
프로파게이션 딜레이=전기적신호/속도 (시험)

트래픽이 증가함에 따라서
19 패킷로스가 발생하는 이유가 스루풋이 bottleneck문제가 있고 bottleneck의 개념 스루풋은 bottleneck에 대해서 발생한다는 내용

패킷로스도 굉장히 문제이다.
큐잉버퍼가 다차면 로스가된다.
명확하게는 어느라우터도 tail드롭을 한 라우터는 없다.
랜던드랍이나 priority 드랍을 할 수 있다.
요즘은 드랍방식이 다양하다
adaptive 하게 큐를 매니지먼트하는 기법들이 많다.
소위 희생 패킷을 찾는것이다.
그엔드호스트에 tcp(transmission control protocol)
가 있는데 tcp가 하는 기능에 congestion controll(혼잡제어)기능이 있다.
언제 엔드호스트가 congestino controll을 하는가?
패킷로스가 발생했을 때이다.
엔드호스트는 패킷로스가 발생하면 네트워크에 혼잡이 발생하고있다 추정한다.
그 원리로서 패킷드럽하는 디펜던시가 있다.
아까같이 뒤쪽부터 드럽을 하면 tcp flow간의 fairness(공정성)가 손상될 수 있다.

실제 source to destination으로 라우팅을 할 때 얼만큼의 bps가 나오냐라고 얘기해 볼때 그림을 그려보면 source에서 destination으로 보낼 때
여러개의 라우터를 거치고 라우터사이에는 링크가 있다.
각각의 링크들은 모두 다른 용량을 갖고있다.
어떤선은 구리선,어떤선은 fiber로 되어있어 이런이유로
transmisson rate이 여기선 좀 빠르다.
이런경우 throughput이 어떻게 결정되는가

end to end host의 throughput은 그 패스에 있는 가장 작은 링크용량에 의해 결정된다
그 링크용량을 보틀넥이라한다.
20.ip 헤더 실습내용 어떤식으로 헤드정보가 들어가는가
21 서브네트워크가 무엇인가 개념 네트워크파트와 호스트파트 각각의 주소가 클래스별,클래스 리스같은 경우에 주소갯수가 어떻게 되는지 |
0 X |
22DHCP의 역할이 무엇인가? 어떻게 동작하는가 | 0 |
23계층적인 ip구조의 특징,중요: | 0 |
24사설아이피를 쓰는 방법을 이해, ipv6를 쓰기 위한 방법, | x |
25라우팅으로 넘어가서 어떤 라우팅이 있고 |
21.5네트워크파트와 호스트파트 각각의 주소가 클래스별,클래스 리스같은 경우에 주소갯수가 어떻게 되는지
ip주소는 어떻게 생겼나.

네트워크 아이디 파트와 호스트 아이디파트로 나누어진다고 배웠다.

앞에서는 3개의 숫자가 네트워크 아이디인 예를 봤고
이것이 class c address이다.
이 네트워크 id의 길이에 따라서
ip 주소의 클래스를 나누어놓았다.
제일 앞에것만 네트워크 아이디이고 나머지는 호스트다 이러면 class a
2바이트까지만 x.x.x.x라는 ip 주소에서
2바이트는 16비트이다.
이것이 class b이다.
클래스 abc중에 디바이스에 할당할 수 있는 주소가
가장 많은 것은 a이다.
왜?
호스트 id숫자가 많다는 것은 ip주소가 많다는 것 이니까
클래스 a에 해당하는 ip주소는 총 2의 24승이다.
2는 경우의 수가 0,1이어서 2
전체 비트수가 24비트
그래서 2의 24승의 ip주소를 갖는다.
b클래스는 2의 16승개
ip주소에서 클래스에 따라서 주소가 어떻게 늘어나는지는 이해해야한다.
한가지 더 알고있어야할 점은private ipaddress이다
사설아이피목적으로 몇개의 ip pool을 정의해놨다.
이것은 10으로 시작하고 네트웤이 a클래스 네트웤이다.
8비트짜리 네트워크이다.
지금까지 ip버전 6를 쓰지 않는 이유가
private ip address 때문이다.
private ip address초기 목적은 실험용으로 만들어 놓은 ip address인데
이 사설 아이피가 ipv4의 모자란 ip를 메꿔주는 형태로 쓰인다.

위가 다 private ip주소

넷마스크
와

ip주소를 엔드연산
--> 192.9.82.0 이것이 네트워크 파트이다
네트워크 id를 알기위해서 넷마스크(255.255.255.0)가 필요하다
결과적으로
넷마스킹을 하면 네트워크 아이디를 알수있다
--------------------------------------------------------------------------------------
CLDR classless interDomain Routing
앞에서는 네트워크 파트를 클래스기반으로 나타냈다.
a는 네트워크 파트가 8비트
b는 16
c는 24비트이다
이렇게하면 자유도가 flexible하지가 않다.
내가 예를들어 8개는 c클래스를 쓰려다보니까
255개인데 내가 우리회사에 설치할 컴퓨터가 300개이다.
그러면 c클래스로 부족하니까 b클래스를 받아야하나 생각하는데
b는 2의 16승으로 너무 많다.
그래서 이렇게 비효율적인거보다
클래스를 나누지않고 자유롭게 x를 32비트중에서는 자유롭게쓰도록하자고 정해놓는다.
32비트중에서는 자유롭게 쓰므로
만약 컴퓨터 16개짜리 서브네트워크만 있으면 된다고 할 때
16개면 2의 4승개만 필요한거고
전체비트는 2의 32 -4승 해서 28개만 필요하다

이그림으로 알 수 있는 것은
네트워크아이피는 23비트고
호스트 아이피는 32-23=9비트이라는 것이다.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------