🍕 개요
방금 중간고사가 끝났는데 기말고사가 됐다... 중간고사 때 아쉬운 성적을 취득한 관계로 기말 때는 배로 열심히 해야만 하게 되었다.
그치만 중간고사 이후 고작 4 주 쯤 더 살았다고 사람 지능이 달라졌을 리가 없다... 경각심을 느낀다 원래는 모각코 시간에 개인적인 프로젝트 공부나 동아리 스터디 공부를 했는데, 발등에 불이 떨어져서 컴네 공부를 했다 박박 정리하면서도 모르겠는 컴퓨터 네트워크~ 수업을 들으면서 중요한 부분으로 추정되는 부분을 정리했다.
network layer 에서 하는 일
- segment 를 sending host 로부터 receiving host 로 전달하는 일을 한다.
- transport layer 에서는 process to process
- network layer 에서는 host to host
- sender 는 받은 segment 를 datagram 으로 바꾸고 link layer 로 전달한다.
- segment 에 header 를 붙여서 datagram 으로 만든다.
- receiver 는 datagram 을 받아서 segment 를 끄집어내고 transport layer 로 segment 를 전달한다.
- network layer 는 모든 host 모든 router 에 구현되어 있어야 한다.
- (transport layer 는 sending host 와 receiving host 에만 구현되어 있어도 된다.)
💯 Two key network-layer functions
- forwarding vs routing
- forwarding
- router 의 input link 로 들어온 packet 을 header 를 참고해서 정확한 output link 로 이동시켜주는 것
- routing
- 보내는 쪽에서 받는 쪽까지 (출발지-목적지, source-destination) packet 이 거쳐가야 할 경로를 결정해주는 것
- forwarding, routing 은 누가 담당할까?
Data plane
- local, per-router function (라우터 끼리 처리)
- forwarding 기능이 대표적
- 하나의 네트워크 안에서 이루어짐
Control plane
- 네트워크 전반적인 logic 기능을 함
- 네트워크 전체에서 이루어짐
- datagram 이 source 에서 destination 까지 가는 데에 어떤 라우터를 거쳐야 할지 결정
- traditional routing algorithms
- software-defined networking (SDN)
- plane → layer 들이 있는 것
- 한 계층 안에 두 가지 일을 하는 것이 있어서 나눈 것임
- network 안에 하나는 data plane 하나는 control plane
Per-router control plane
- traditional routing algorithms
- 전통적인 방식임
- 라우터 마다 개별적으로 control plane 이 구현되어 있음 그래서 라우터 끼리 interact 함 (link 를 통해)
- 경로를 설정한 결과는 local forwarding table 에 저장함 (control plane 의 결과)
- data plane 에서 packet 이 들어오면 table 과 header 를 보고 찾아서 forwarding 을 수행함
- 결국 원활한 fordwarding 이 이루어지려면 control plane 과 data plane 이 협업해야 함
Software-Defined Networking (SDN) control plane
- remote controller computes, installs forwarding tables in routers
- 원격의 controller 가 하나 있음 (보통은 server 하나 구현)
- remote controller 에서 network 상의 전체 모양을 알 수 있음
- 각각 라우터에 controller agent 존재
- ca 와 remote controller 소통해
- remote controller 가 각각의 라우터들이 사용할 모든 forwarding table 계산
- ca 로 전달 → forwarding table 사용
- forwarding table 을 이렇게 계산하면 더 정확하고 일관성 있음
- 모든 라우터의 동일한 상태를 가지고 라우터들에게 연락하기 때문
- controller 가 만약 죽어버리면 . 다끝이야 (단점…)
Q. datagram 을 sender 에서 receiver 까지 전송하는 데에 어떤 service model 을 제공해줄 것인지
- for individual datagrams
- 보증된 delivery
- 40 msec 내에 무조건 delivery 보증
- for a flow of datagrams
- 하나의 tcp connection 에서 전달되는 모든 packet 을 flow 라고 한다.
decentralized switching
- header field 를 검사하고 forwarding table 를 통해 ouput port 를 찾는다.
Longest prefix matching
- prefix 돌아보면서 매칭되는 것을 찾아야 하는데 시간이 오래 걸림
- TCAMs 이용해서 lookup (ternary content addressable memories)
- TCAM 에 주소를 전달하면 1 사이클 내에 output link 를 반환한다.
recall delay-based congestion control
- bottleneck link 를 충분히 full 하게 하되 넘치지 않게 조절하는 것
- 너무 긴 RTT 는 realtime application 에서 성능이 좋지 않다. TCP response 를 반환하는 것이 부진하기 때문이다. (빠른 재전송이 불가하기 때문)
- RTT 를 줄인다.
buffer management
- drop
- tail drop
- priority
- marking
packet scheduling : FCFS
- 다음 link 에 어떤 packet 을 보낼지 결정하는 것
scheduling policies (1) : priority
scheduling policies (2) : round robin (RR)
- packet 번갈아서 하나씩만 보냄
scheduling policies (3) : weighted fair queueing (WFQ)
- queue 별로 weight 를 다르게 부여
path-selection algorithms
- network layer 의 가장 큰 할 일은 forwarding 과 routing 이다.
- path-selection algorithms (routing) 를 이용하여 forwarding table 을 구한다.
- forwarding table 을 보고 어느 링크로 내보낼지 설정하는 것이 forwarding 이지
- 이를 위해서는 IP protocol 이 필요하다. (header field, addressing…)
- ICMP protocol 도 필요하다. (에러 핸들링)
Subnets
- router 를 거치지 않고 도달 가능한 device interface 의 집합을 subnets 이라고 한다.
🍕 정리
이번주에는 Chapter 4 를 공부해보았다 양이 어마무지하게 많다 아악 이거 어떻게 다 외우지... 앞서나가버릴걸, 일 년 전부터 공부할걸, (되겠냐고...) 업보려니 하고 오늘부터 시험 공부를 하기로 했다.
'주제 업슴' 카테고리의 다른 글
[빅데이터 최신 기술] ADHD 관련 텍스트 마이닝: 키워드 네트워크와 감정 흐름 기반 분석 - 1 (0) | 2025.03.26 |
---|---|
Jest 로 프론트엔드 테스트 코드 작성하기 (0) | 2025.02.18 |
Git 브랜치 전략 (0) | 2024.07.07 |
[모각코] 컴퓨터 네트워크 혼내주기 2 🍕 (0) | 2024.05.29 |
스크롤에 반응하는 목차 하이라이트 만들기 (0) | 2024.03.20 |