13주차-1

Chooooo·2023년 1월 20일
0

컴퓨터네트워크

목록 보기
8/11
post-thumbnail

컴퓨터네트워크 수업 내용 복습!


Linke Layer and LANs

‏‏‎ ‎

‏‏‎ ‎

링크 계층(Link Layer)

링크 계층은 어떤 노드(호스트/라우터)로부터 인접한 노트까지 연결한 엣지(링크)로, 패킷/데이터그램을 옮기는 책임을 가진다. 링크 계층은 네트워크 계층에서 받은 데이터그램프레임 단위로 쪼개어 전송한다. 이 프레임들은 전송 과정 중에서 모든 링크가 같은 프로토콜을 사용하는 것이 아니므로, 중간 중간에 다른 서비스를 제공하는 다른 프로토콜을 거치기도 한다. 물리 계층, 즉 케이블을 타고 0과 1의 신호로 변환되기 직전이므로, 윗 계층들이 논리적으로 구현되어 있다고 하면, 링크 계층은 논리적 구현은 물론 실제 기기(NIC, 칩셋 등)가 존재해야 한다. 주된 목표는 역시 속도와 정확성이다.

‏‏‎ ‎

13주차-1 image

각각의 링크 프로토콜은 다른 서비스를 제공해. 믿을 만한 데이터 전송을 할 수도 있고 안할 수도 있고.

‏‏‎ ‎

‏‏‎ ‎

  • 프린스턴에서 로잔까지 간다면,
  1. 리무진을 타고 프린스턴에서 JFK 공항까지

  2. 비행기를 타고 JFK 공항에서 제네바 공항까지

  3. 기차를 타고 제네바 공항에서 로잔까지

  • 이때 여행객 = 데이터그램(패킷), 운송 부분 = 통신 링크, 운송 수단 = 링크계층 프로토콜, 여행 플래너(에이전트) = 라우팅 알고리즘

‏‏‎ ‎

  • 프레이밍(framing), link access : 데이터그램을 헤더와 트레일러(꼬리)를 붙여 프레임(frame) 단위로 포장해줌

  • 공유 매체라면 채널 접근

  • 프레임의 헤더에는 시작과 도착점을 식별하기 위해 MAC 주소가 존재(IP와는 다르다)

- 이더넷 source, destination 을 구분하는 MAC 주소?

‏‏‎ ‎

  • 인접한 노드 간에 신뢰 가능한 전송

  • 흐름 제어(flow control) : 인접한 노드 간의 송신과 수신의 속도를 제어

  • 에러 탐지(error detection) : 에러(신호 감쇠, 노이즈로 인해 발생)를 수신자가 탐지해서 재송신받거나 버림

  • 에러 수정 (error correction) : 수신자가 에러 탐지 후 비트 오류를 스스로 수정

  • (half - duplex)반양방 통신(한 쪽이 송신하고 있을 때 다른 한 쪽은 수신할 수 밖에 없음) - 양쪽 모두 송신은 가능. 근데 동시에 송신이 안됨.

  • /(full-duplex) 전이중 통신(쌍방향) - 동시에 양쪽 모두 송신이 가능.

13주차-1 image

wireless link. 무선 인터넷 공유기... 선이나 무선 공유기.. 나중에 공부할 것.

‏‏‎ ‎

‏‏‎ ‎

  • 링크 계층은 그렇다면 어디에 구현되는가?

링크 계층의 실제 위치

  • 모든 호스트 안에 존재

  • 어댑터(NIC : 네트워크 인터페이스 카드)나 칩셋 = 컨트롤러 + 물리계층

- 이더넷, WiFi card, chip

- 링크 계층, 물리 계층에서 사용된다

  • 호스트의 시스템 버스에 붙어있음

  • 하드웨어, 소프트웨어, 펌웨어 등 다양하게 사용된다

13주차-1 image

‏‏‎ ‎

‏‏‎ ‎

인터페이스 커뮤니케이션 (interfaces communication)

  • 송신측은(sending side) 데이터그램을 프레임으로 캡슐화하고, 오류 확인용 비트, rdt(reliable data transfer), 흐름 제어 요소 등을 추가한다.

  • 수신측은(receiving side) 에러여부, rdt(reliable data transfer), 흐름 제어 요소를 확인하고 데이터그램을 확인해 상위 층으로 넘긴다.

13주차-1 image

‏‏‎ ‎

‏‏‎ ‎

오류 확인 및 수정에 대해서 공부하자

EDC : error detection and correction bits

에러 탐지는 100프로 신뢰할 수는 없어.

  • 프로토콜이 일부 오류를 놓칠 수 있지만 EDC필드가 더 큰 경우는 거의 없다.

  • EDC 필드가 클수록 더 나은 감지 및 수정이 가능하다.

13주차-1 image

‏‏‎ ‎

Error detection & correction

  • 패리티 검사(Parity checking) : single bit(다 더해서 홀짝인가), two - demensional bit(가로세로로 다 더해서 홀짝) 가까이 붙어 있는 거리에서 사용하는 에러 체크 방식.

- 패리티 검사는 옛날 방식이라 잘 안써.

  • 인터넷 체크섬(Internet checksum) : 송신자(senders)는 데이터를 16bit 정수로 읽고 1의 보수합을 해 데이터그램 한 켠에 넣음, 수신 측에서 검사.

- UDP 세그먼트에 대해서..진행

- 수신측에서 검사는 만약 같으면 에러가 없는 것이고 같지 않다면 에러가 탐지 된거야.

‏‏‎ ‎

  • 주기적 덧붙임 검사(CRC) : 순환 중복 검사. 즉 CRC란 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식

- D라는 원래의 데이터를 어떤 숫자 bit pattern(G)라는 값으로(32비트)로 나눠서 그 나머지 값을 보낸다. 이것이 CRC 비트가 될 것.

13주차-1 image

나머지 값인 CRC... 즉 D나누기 G??의 나머지 값???

수신 측은 G를 알고 있어 나머지가 0이 아닐 경우 오류가 감지됨!

r+1 비트 미만의 모든 버스트 오류를 감지할 수 있다.

실제로 널리 사용되고, 이더넷 wifi 등에서 사용.

‏‏‎ ‎

CRC예시

13주차-1 image

13주차-1 image

  • 송신측에서는 CRC값을 데이터에 붙인 코드워드를 전송하며, 수신측에서는 수신된 코드워드에서 CRC값을 이용하여 에러 발견

‏‏‎ ‎


링크는 어떤 지점에서 다른 지점으로 보내는 방식(Point-to-Point)과 연결된 모두에게 알려주는 방식(Broadcast) 이렇게 두 가지 종류가 있다.

이때 후자의 브로드캐스트 상황에서 호스트들은 어쩔 수 없이 선이나 매체를 공유하게 된다. 하나의 채널에 여럿이 동시에 달려든다면 충돌이 발생할 수 있기 때문에 이를 적절히 분배하는 다중접근 프로토콜이 필요하다.

‏‏‎ ‎

13주차-1 image

‏‏‎ ‎

다중 접근 프로토콜

13주차-1 image

다중 접근 프로토콜

  • 단일 공유 브로드캐스트 채널

  • 노드에 의한 2개 이상의 동시 전송 : 간섭

  • 노드가 동시에 두 개 이상의 신호를 수신할 경우 충돌

이런 일이 안생기도록 하는 프로토콜이 Multiple access protocols

‏‏‎ ‎

이상적인 다중 접근 프로토콜은 이더넷 프로토콜!

13주차-1 image

이상적인 다중 액세스 프로토콜지정: Rbps 속도의 다중 액세스 채널(MAC)

desiderata:

1. 한 노드가 전송을 원할 때, 그것은 속도 R로 전송할 수 있다.

  1. M노드가 전송을 원할 때, 각각은 평균 R/M 속도로 전송할 수 있다.

3. 완전 분산형:

• 전송을 조정하기 위한 특별한 노드 없음

• 클럭, 슬롯 동기화 없음

4. 단순

이 요구사항을 충족시키는 것이 이상적이 다중 접속 프로토콜 요구하는 요구사항.

‏‏‎ ‎

MAC(multiple access channel) protocol 을 분류해보면 크게 3가지를 나눌 수 있다.

다중 접속 프로토콜

  • channel partitioning

  • random access(이더넷)

  • taking turns

13주차-1 image

‏‏‎ ‎

‏‏‎ ‎




‏‏‎ ‎

‏‏‎ ‎

‏‏‎ ‎

  • 채널 파티셔닝 : R속도의 브로드캐스트 채널에 M명이 연결되어 있다면 각자가 R/M씩 보내면 충돌이고 뭐고 없음

  • 랜덤 접근 : 채널이 나눠져있지 않고, 충돌을 허용, 그냥 충돌나면 그것을 회복시키는데 집중

  • 순번 접근 : 돌아가면서 보내는 것 ( 보내던거 마저 보내도록 배려)

‏‏‎ ‎

채널 파티셔닝(channel partitioning MAC protocols)

  • TDMA(Time Divition Multiple Access) : 시분할 방식, 라운드를 거치며 각자의 라운드에 패킷을 전송

  • FDMA(Frequency Division Multiple Access) : 한 채널을 주파수 영역으로 나눠 각자의 주파수로 데이터를 전송

랜덤 접근 프로토콜(random access MAC protocol)

  • 그냥 보내고 싶을 때 보냄(충돌 발생 가능)

  • 여기서는 그 충돌을 감지하고, 충돌로부터 회복하는 것에 집중

  • slotted ALOHA, CSMA, CSMA/CD, CSMA/CA 등

‏‏‎ ‎

slotted ALOHA  - 모든 프레임 크기 동일, 전송가능한 시간대는 나눠짐(그 때에 누구든 마음대로 보냄), 충돌 발생 시 모두 알 수 있음  - 1. 노드가 새로운 프레임을 획득했다면, 다음 슬롯을 통해 전송  - 2. 만약 충돌이 없다면 바로 다음 슬롯에 또 전송  - 3. 만약 충돌이 있다면 노드는 다시 프레임을 성공할 때 까지 재전송  - 장점 : 연속적으로 최대 속도로 보낼 수 있다, 싱크만 맞추면 되고 단순하다  - 단점 : 충돌, 남는 슬롯이 많다. 전송 하기 전에 충돌이 발생했음을 모를 수도 있다. 시각의 동기화 문제가 있다.  - 보낼 프레임이 많을 때, 보장된 긴 빈 슬롯이 필요할 때 효율적, 전송에 온전히 사용되는 채널은 시간의 최대 37%!

unslotted ALOHA  - 더 단순하고 동기화도 필요없다  - 프레임이 도착하면 바로 전송해버림  - 충돌이 일어날 확률이 더 높아짐  - 따라서 더 비효율적이고, 전송에 온전히 사용되는 채널이 시간의 최대 18%밖에 안 나옴!

CSMA(carrier sense multiple access)  - 보내기 전에 눈치를 보자  - 만약 채널이 놀고 있다면, 프레임을 통째로 전송  - 만약 채널이 바쁜 것 같다면 전송을 연기 (남들을 방해하지 마세요!)  - 그래도 충돌은 발생(전파 속도가 늦어 남들이 보내는지 안 보내는지를 모를 수 있음, 발생 시 패킷 전송시간만큼 낭비

CSMA /CD(Collision Detection)  - 캐리어를 감지하고 CSMA처럼 연기  - 빠른 충돌의 감지기능을 추가, 충돌한 전송은 폐지해 채널 낭비를 줄임  - 충돌의 감지는 전송하거나, 받는 신호들 보다 신호가 약하다면 LAN을 통해서는 쉽게 감지(무선에서는 어려움)  1. NIC(네트워크 인터페이스 카드)가 데이터그램을 네트워크 계층으로부터 내려받고 프레임을 만든다.  2. NIC는 채널이 놀고 있는 것을 감지하고 프레임 전송을 시작한다. 채널이 바쁘다면 놀 때까지 전송 대기한다.  3. 만약 NIC가 전체 프레임을 다른 충돌 감지 없이 보냈다면, 일이 끝난것!  4. 만약 NIC가 보내놓고 보내는 도중 다른 전송을 감지했다면, 폐지하고 혼잡 신호를 보냄  5. 폐지한 후에 NIC 지수 백오프 처음에 랜덤으로 기다린 후에 점점 더 오래 기다리는 것!

‏‏‎ ‎

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글