반응형
참고서적 : 컴퓨터 네트워킹 하향식 접근 제 6판 Kurose, Ross
1.링크 계층 소개
- 노드 (node) : 링크 계층 프로토콜을 실행하는 장치
- Ex) 호스트, 라우터, 스위치, wifi AP 등
- 링크 (Link): 통신 경로상의 인접한 노드들을 연결하는 통신 채널
1.1 링크 계층이 제공하는 서비스
- 프레임화 : 거의 모든 링크 계층 프로토콜은 네트워크 계층 데이터그램을 링크상으로 전송하기 전에 링크 계층 프레임에 캡슐화 한다.
- 프레임은 네트워크 계층 데이터그램이 들어있는 데이터 필드와 여러 개의 헤더 필드로 구성
- 링크 접속 : 매체 접속 제어(medium access control, MAC) 프로토콜은 링크상으로 프레임을 전송하는 규칙에 대해서 명시
- 신뢰적 전달 : 링크 계층 프로토콜이 신뢰적 전달 서비스를 제공하는 경우 네트워크 계층 데이터그램은 링크상에서 오류없이 전달 됨.
- 일부 트랜스포트 계층 프로토콜에서는 신뢰적 서비스를 제공
- 오류 검출과 정정: 오류를 검출하는 방법 제공.
1.2 링크 계층이 구현되는 위치
- 대부분의 경우 링크 계층은 네트워크 인터페이스 카드(Network Interface Card, NIC)로 알려진 네트워크 어댑터 (network adapter)에 구현됨
- 네트워크 어댑터의 링크 계층 제어기에는 프레임화, 링크 접속, 오류 검출 등의 서비스가 구현되어있음
2. 오류 검출 및 정정 기술
- 링크계층은 비트 수준 오류 검출과 정정(bit-level error detection and correction)을 제공
- 비트 오류를 방지하기 위해 송신 노드에서 데이터에 오류 검출 및 정정 비트들(EDC)을 첨가
- 오류 검출 비트를 사용하더라도 미검출된 비트 오류가 있을 수 있음
- 향상된 오류 검출 및 정정기술은 더 많은 오버헤드를 필요로함
2.1 페리티 검사
- 패리티 비트(parity bit)사용
- 짝수 패리티 기법
- 한 비트를 추가하고, 그 비트값을 전체 비트들에서 1의 총 개수가 짝수가 되도록 선택
- 홀수 패리티 기법
- 한 비트를 추가하고, 그 비트값을 전체 비트들에서 1의 총 개수가 홀수가 되도록 선택
- 단일 패리티 기법
- 단일 패리티 비트의 경우 수신자는 수신된 비트중에서 1의 개수를 계산하면 오류가 검출됨
- 단일 패리티 기법의 경우 짝수개의 오류가 발생하면 오류가 검출되지 않을 수 있음
- 2차원 패리티 기법
- 행패리티 비트, 열패리티 비트 추가
- 오류 발생 시 반전된 비트를 포함하는 열과 행에 대한 패리티에 오류가 생김.
- 수신자는 단일 비트 오류의 발생을 검출할 수 있을 뿐만 아니라, 패리티 오류가 있는 열과 행의 인덱스 값을 사용해 잘못된 비트를 실제로 식별해서 오류를 정정할 수 있음.
- 순방향 오류 정정(Forward Error Correction, FEC) : 오류를 검출 및 정정하는 수신자의 능력
2.2 체크섬 방법
- 데이터를 구성하는 비트들을 일련의 비트의 정수처럼 다룸
- 간단한 체크섬 방법 : 데이터들을 k비트의 정수로 나누어 인식하고 서로 더하여 오류검출 비트로 사용
- 인터넷 체크섬
- 데이터의 바이트를 16비트 정수 단위로 취해서 더해줌
- 더한값의 1의 보수가 인터넷 체크섬
- 인터넷 체크섬을 세그먼트 헤더에 넣어 줌
- 수신자는 수신 데이터 합의 1의 보수를 취한 후 그 결과가 모두 1인 비트로 구성되어 있는지 계산 (0이 있을 시 오류)
- CRC방식과 비교하면 오류면에서 상대적으로 취약
2.3 순환 중복 검사(Cyclic Redundancy Check, CRC)
- 다항식 코드(polynomial code)로도 알려져있음
- 동작방식
- d 비트로 이루어진 데이터 D를 송신 노드가 수신 노드로 전송한다고 가정
- 송신자와 수신자는 G로 표기되는 생성자로 알려진 r+1비트 패턴에 대하여 합의 (G의 최상위 비트는 1)
- 주어진 데이터 D에 대해 송신자는 r개의 추가 비트 R을 선택해서 D뒤에 덧붙이며, d+r비트 패턴은 모듈로-2연산을 이용하면 G로 정확히 나누어 짐
- 수신자는 d+r개의 수신 비트를 G로 나눔, 나머지가 0이 아니라면 오류가 발생한 것
3. 다중 접속 링크와 프로토콜
- 점대점 링크 (point - to -point link) : 링크의 한쪽 끝에 한 송신자와 링크의 다른 쪽 끝에 한 수신자가 있음.
- 대다수의 링크 계층 프로토콜은 점대점 링크용으로 선계
- PPP(point-to point protocol), HDLC(high- loevel data link contorl)이 속함
- 브로트캐스트 링크(broadcast link) : 동일한 하나의 공유된 브로드캐스트 채널에 다수의 송신 노드 및 수신 노드들이 연결
- 브로드캐스트 : 임이의 한 노드가 프레임을 전송하면 채널이 그 프레임을 방송(broadcast)해서 다른 모든 노드들이 그 프레임의 복사본을 수신함.
- 다중 접속 문제(multiple access problem)을 해결하는 것이 중요
- 2개 이상의 노드가 동시에 프레임을 전송하면 수신자에서 충돌(collide)함
- 충동하게 되면 신호가 해석할 수 없을 정도로 손상
- 충돌이 일어나지 않게 하기 위해(충돌에 대처하기 위해) 다중 접속 프로토콜(multiple access protocol)이 있음
- 채널 분할 프로토콜(channel partitioning protocol)
- 랜덤 접속 프로토콜 (random access protocol)
- 순번 프로토콜 (taking turns protocol)
3.1 채널 분할 프로토콜
- 시분할 다중화 (time division multiplexing, TDM)
- 시간을 시간 프레임으로 나누고 각 시간프레임을 N개의 시간 슬롯으로 나눔.
- 각 시간 슬롯은 N개 노드에게 각각 할당
- 노드는 전송할 패킷이 있을 때마다 TDM프레임에서 자신에게 할당된 시간 슬롯 동안 패킷 비트들을 전송
- 일반적으로 한 패킷이 한 슬롯 시간동안 전송
- 단점
- 전송할 패킷이 있는 노드가 단 하나인 경우에도 노드 전송률이 평균 R/N으로 제한
- 노드가 전송 순서상 자신의 차례를 항상 기다려야 함
- 주파수 분할 다중화(frequency division multiplexing, FDM)
- Rbps의 채널을 다른 주파수(R/N의 대역폭을 갖는)로 나눠서 각 주파수를 N개 노드 중 하나에게 할당
- 단점
- 전송할 패킷을 가진 노드가 단 하나일지라도 노드는 R/N의 대역폭으로 한정됨
- 코드 분할 다중 접속(Code Division Multiple Access, CDMA)
- 다른 코드를 각 노드에게 할당
- 노드는 전송하는 데이터 비트들을 자신의 유일한 코드로 인코딩 함
- 코드들을 신중하게 선택하면 여러 노드들이 동시에 전송할 수 있음
- 다른 노드들에 의해서 전송이 간섭(interfere)되더라도 각 수신자들이 송신자의 인코딩된 데이터 비트를 정확하게 수신할 수 있음.
3.2 랜덤 접속 프로토콜
- 랜덤 접속 프로토콜에서 전송 노드는 항상 채널의 최대전송률로 전송
- 충돌이 생기면 충돌과 관련된 각 노드는 프레임이 충돌 없이 전송될 때 까지 자신의 프레임을 계속해서 재전송
- 충돌했을 때 노드는 해당 프레임을 즉시 재전송할 필요는 없음, 랜덤 지연 시간동안 기다린 후 전송
- 슬롯 알로하
- 가정
- 모든 프레임은 정확히 L비트로 구성
- 시간은 L/R초의 슬롯들로 나뉨
- 노드는 슬롯의 시작점에서만 프레임을 전송하기 시작
- 각 노드는 언제 슬롯이 시작하는지 알 수 있게끔 동기화되어 있음
- 한 슬롯에서 2개 이상의 프레임이 충돌하면 , 모든 노드는 그 슬롯이 끝나기 전에 충돌발생을 알게됨.
- 노드는 전송할 새 프레임이 있으면 다음 슬롯이 시작할 때까지 기다렸다가 그 슬롯에 전체 프레임을 전송
- 만약 충돌하지 않으면, 노드는 성공적으로 자신의 프레임을 전송한 것. 따라서 재전송 안함
- 만약 충돌하면 , 노드는 그 슬롯이 끝나기 전에 충돌을 검출, 노드는 그 프레임이 충돌없이 전송될 때 까지 확률 p로 해당 프레임을 다음 슬롯들에서 재전송
- 장점
- 하나의 활성 노드로 하여금 채널의 전속력 R로 계속해서 프레임으 전송할 수 있도록 허용
- 각 노드가 충돌을 감지하고 언제 재전송할지 각자 결정하므로 상당히 분산되어 있음
- 단점
- 활성노드가 많이 있으면 일부 슬롯이 충돌로 인해 낭비될 수 있음
- 모든 활성 노드들이 확률적인 전송 정책 때문에 전송을 억제하는 경우 일부 슬롯이 빌 수 있음
- 가정
- 알로하
- 프레임이 도착하면 노드는 즉시 그 프레임 전체를 브로드캐스트 채널로 전송
- 만약 전송된 프레임이 하나 이상의 다른 전송과 충돌하면 노드는 확률p로 그 프레임을 즉시 재전송
- 재전송 하지 않을 경우 노드는 프레임 전송 시간 동안 기다림. 그 후 그 프레임을 확률 P로 전송하거나 전송하지않음.
- CSMA(Carrier Sense Multiple Access)
- 캐리어 감지(Carrier Sense): 노드는 전송하기 전에 채널을 들음. 만약 다른 노드가 프레임을 채널로 전송하고 있으면, 노드는 임의의 짧은 시간 동안 전송 중단을 감지하면 프레임을 전송하기 시작
- 충돌 검출 (collision detection) : 송신 노드는 전송하면서 동시에 채널을 들음, 만일 다른 노드가 방해 프레임을 전송하고 있음을 검출하면, 자신의 전송을 중단하고 랜덤 시간 동안 기다린 후 유휴시 감지 및 전송과정을 반복
- 채널 전파 지연(channel propagation delay)때문에 이미 시작된 전송을 캐리어 감지 노드가 감지할 수 없는 경우가 많음
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection)
- 노드가 충돌 검출을 수행하면, 충돌이 검출되었을 대 바로 자신의 전송을 중단
3.3 순번 프로토콜
- 폴링 프로토콜(polling protocol)
- 노드중의 하나를 마스터 노드로 지정
- 마스터노드는 각 노드를 라운드 로빈 방식으로 폴링
- 장점
- 빈 슬롯이 없이 동작
- 단점
- 폴링 지연
- 마스터 노드가 고장나면 전체 정지
- 토큰 전달 프로토콜(token-passing protocol)
- 마스터 노드가 없고 토큰(token)이라고 알려진 작은 특수 목적 프레임이 정해진 순서대로 노드간에 전달
- 노드가 토큰을 수신하면, 전송할 프레임이 있을 때만 토큰을 붙잡음. 없으면 토큰을 다음 노드로 전달
- 단점
- 노드 하나가 실패하면 전체 채널이 동작하지 않음
- 노드가 토큰을 놓아주지 않으면 토큰이 다시 돌 수 있도록 하는 회복절차가 필요
4. 스위치 근거리 네트워크
4.1 링크 계층 주소체계와 ARP
- 호스트와 라우터들은 링크 계층 주소를 가짐
- ARP( Address Resolution protocol) : ip주소를 링크 계층 주소로 변환
- 링크계층의 주소를 가진 것은 호스트나 라우터가 아닌 호스트나 라우터의 어댑터이다
- 다수의 네트워크 인터페이스를 갖고 있는 호스트나 라우터는 여러개의 링크 계층 주소를 가짐
- 링크계층 스위치는 호스트나 라우터를 연결해주는 인터페이스에 링크 계층 주소를 할당받지 않음
- MAC주소
- 6바이트의 길이 , 16진수 표기법으로 표시
- 어떤 어댑터도 동일한 주소를 갖지 않음
- ARP
- 네트워크 계층 주소와 링크 계층 주소 사이에 변환을 해주는 프로토콜
- ARP모듈이 IP주소를 받으면 해당 IP주소에 해당하는 MAC주소를 응답해줌
- 호스트와 라우터에 ARP 테이블이 존재, IP주소와 MAC주소를 매
4.2 이더넷
- 이더넷 프레임 구조
- 데이터 필드(46~1500바이트) : ip데이터그램을 운반, 1500바이트 이상일 경우 데이터그램을 단편화 해야함. 46바이트보다 작으면 데이터 필드를 채워서 46바이ㅡ로 만들어야 함
- 목적지 주소(6바이트) : 목적지 어댑터의 MAC주소
- 출발지 주소 (6바이트) : 프레임을 랜으로 전송하는 어댑터의 MAC주소
- 타입필드(2바이트) : 네트워크 계층 프로토콝을 다중화 하도록 허용
- 순환중복검사(CRC) (4바이트) : 오류 검출
- 프리앰블(8바이트) : 프리앰블의 첫 7바이트는 수신어댑터를 깨우고 수신자의 클록을 송신자의 클록에 동기화 시키는 역할을 함
- 모든 이더넷 기술은 네트워크 계층에게 비연결형 서비스를 제공 (UDP와 유사)
- 네트워크 계층에게 비신뢰적인 서비스 제공
4.3 링크 계층 스위치
- 링크 계층 프레임을 수신해서 출력 링크로 전달하는 역할.
- 전달 및 여과
- 여과 (filtering) : 프레임을 인터페이스로 전달할지 또는 폐기할지 결정하는 스위치의 기능
- 전달 (forwarding) : 프레임이 전송될 인터페이스를 결정하고 프레임을 해당 인터페이스로 내보내는 기능
- 스위치의 여과와 전달은 스위치 테이블을 이용
- 자가학습
- 스위치는 자신의 테이블을 자동으로, 동적으로 , 자치적으로 구축
- 스위치는 네트워크 관리자나 사용자의 개입을 요구하지 않는 플러그 앤 플레이 장치
- 링크 계층 스위치의 특성
- 충돌제거
- 이질적인 링크들 : 스위치는 링크들을 별개로 분리하기 때문에 랜의 각 링크는 상이한 속도로 동작할 수 있으며 매체를 사용할 수 있다.
- 관리 : 향상된 보안을 제공할 뿐만 아니라 네트워크 관리를 쉽게 할 수 있게 해줌
반응형
'컴퓨터네트워크' 카테고리의 다른 글
컴퓨터 네트워크 4-2 네트워크 계층 (0) | 2023.01.17 |
---|---|
[JAVA] 소캣 프로그래밍 HTTP 통신 구현 (1) | 2023.01.09 |
[JAVA] server, client 프로그램 - 소켓통신 (0) | 2023.01.08 |
컴퓨터 네트워크 3-1 트랜스포트 계층 (1) | 2023.01.01 |
컴퓨터 네트워크 2-2 - 애플리케이션 계층 (0) | 2022.12.30 |