Chapter6 : Link Layer (끝)

jiwon·2021년 12월 30일
0

컴퓨터네트워크

목록 보기
13/13
post-thumbnail

host와 라우터: node
communication path를 통해 node들을 연결하는 채널 통신: links

  • wired link
  • wireless link

data link 레이어는 datagram을 한 노드에서 물리적으로 인접한 다른 노드로 link를 통해 전달해야 하는 의무를 가지고 있다.

framing:datagram을 frame으로 포장. mac 주소 관련 헤더 추가.
link access: shared medium 있으면 channel access

reliable delivery

  • flow control
  • error detection
  • error correction

모든 호스트의 adaptor(=nw interface card, NIC)혹은 chip (Ethernet card)에 구현된다.

  • point to point network (typically WAN): 노드들이 직접 연결. p2p link between Ethernet switch and hos
  • broadcast network (typically LAN): 모든 노드들이 single communication channel을 공유. wireless LAN(wifi)

※ L2 스위치와 hub의 차이는?
L2 스위치는 버퍼가 있어서 생각하고 보내기 가능 → 링크들의 스피드가 서로 달라도 됨!

허브는 버퍼가 없어서 들어오는 족족 다 보냄(flooding) → 링크들의 스피드(bw)다 똑같아야 함

※single shared broadcast channel에서...2개 이상 노드의 동시 전송 발생하면?
→ interference(전파 간섭)! 노드가 2개 이상의 시그널을 동시에 받으면 collision이 발생한다.

multiple access protocol

determine when node can transmit. 충돌 피하기 위해...
1. channel partitioning

  • TDMA (시간)
  • FDMA (주파수)
  • CDMA (코드에 대한 키가 있는 애만 해석)
  1. random access
  • Collision Detection (CD)
  • Collision Avoidance (AD)
    ※ CD: 전송 시간동안 충돌일어나는지 안일어나는지 listen
    ※ CA: wireless의 경우 서로 signal 탐지를 못함! hidden node problem. 서로 탐지 못하기 때문에 미리 피해야... CTS, RTS 등 보내 링크 선점
  1. taking turn
    블루투스, FDDI 등

MAC address

LAN addr, physical addr이라고도 부름

48 bit mac addr: NIC Rom에 넣거나, sw적으로 세팅. 계층 구조가 아님(컴퓨터가 어디에 있는 같은 mac 주소를 사용할 수 있다.)

ip addr: postal addr (내가 세팅한 주소)
mac addr: social security number(공장에서 찍혀나온 주소. 안바뀜)

ARP: Address Resolution Protocol

next hop ip 알고 있고, 이제 L2의 mac addr을 알고 싶다면 ARP를 사용해야 함! 각 노드들은 ARP table 가지고 있다.

ARP table?
ip/mac addr mapping.

ARP protocol: same LAN (at L2)

시나리오: a가 b에게 datagram보내고 싶은데, a의 ARP table에 b의 mac 주소가 없는 상황.
a는 b의 ip 주소 포함한 ARP 쿼리 패킷을 브로드케스트함. (이 ip 가진 애의 mac을 알려줘!)
b가 해당 패킷 받으면, a에게 자기 mac 주소를 알려줌
a는 자신의 ARP table에 b의 ip-mac 주소 쌍 넣고 TTL 시간동안 보관.

Addressing: routing to another LAN

a가 라우터 R을 거쳐 b에게 datagram 보내려고 할때, a는 DNS에 의해 b의 ip알고, DHCP에 의해 R의 ip도 알고, ARP에 의해 R의 mac도 안다고 가정.

a의 datagram에서 ip src와 ip dst는 고정! mac src와 mac dst는 계속 바뀌게 된다.

synthesis: a day in the life of a web request

DHCP → ARP → DNS → HTTP의 통합적인 과정을 이해해 보자!

  1. 자신의 ip 주소, DNS 서버의 ip 주소, first hop 라우터의 ip 주소를 알기 위해 DHCP 사용! DHCP는 사용자가 세팅 안해도 위 3가지 ip 주소를 알아서 세팅. 어떻게? DHCP 서버 돌리는 라우터에 요청해서 알아옴.

  2. DNS 쿼리 날리려면 first hop 라우터의 mac 주소가 필요함! ARP 쿼리를 브로드케스트해서 mac 주소를 알아낸다.

  3. DNS 쿼리 이용해서 최종 목적지로의 ip 주소 알아낸다.

  4. TCP 세션을 맺는다.

  5. TCP 소켓으로 HTTP request가 날아간다. 이 HTTP request는 www.example.com 으로 가고 웹서버의 HTTP reply가 다시 클라에게 돌아온다. → 사용자의 컴퓨터에 화면 띄우기 성공!

수업 후기


진짜 토나오게 양 많았던 수업... 이었는데 이렇게 정리해놓고 보니 얼마 안되는것 같기도 하고😅
네트워크에 대해 잘 배울 수 있어서 좋았고 학점도 만족스럽다. 하지만 종이노트에 정리한걸 백업하는 짓은 앞으론 하지 않을 것이다...

profile
개발 공부합니다. 파이팅!

0개의 댓글