지금까지 TCP/IP의 3가지 계층을 살펴봤고, 이번에는 Link Layer를 알아볼 차례이다.
호스트와 라우터들은 노드 형태로 되어있고 이 노드들은 유선, 무선, LAN 방식의 링크로 연결되어 있다. 링크 계층에서는 링크를 통해 노드에서 물리적으로 가까운 거리까지 데이터그램을 전달하는 일을 담당한다. 즉, 이 계층의 가장 큰 목표는 에러 없이 링크를 통해 송수신하는 일이다. 이를 위해서 먼저 framing이라는 과정을 거친다. 데이터그램에 헤더와 트레일러를 붙이고 사용할 채널에 접근한다. 이러한 인접 노드에 신뢰성 있는 전송을 제공하기 위해 흐름 제어, 에러 탐지, 에러 정정, half duplex 혹은 full duplex 서비스를 제공한다. 참고로 링크 계층은 NIC라는 네트워크 인터페이스 카드에서 구현되어 있다. 이더넷, 와이파이 카드 정도로 보면 된다.
Error Detection
먼저 링크 계층에서 에러 탐지하는 방법을 알아볼 것이다. 네트워크 인터페이스 카드에서 제공하는 방법으로, 데이터그램이 링크 계층에 들어오면 데이터 뒤에 EDC라는 redundancy 비트를 추가해 송신한다. 송신측에서는 수신된 EDC가 오류가 없는지 검사하고 오류가 없다면 수신한다.
먼저, Parity Checking 방법이 있다. 데이터비트의 1의 개수를 세아려서 짝수나 홀수로 맞추어주는 작업을 한다. 예를 들어서 데이터 비트가 0111000110101011이라면 1의 개수가 9개이므로, parity bit는 1이 되고 전체 1의 개수를 짝수로 맞출 수 있다. 그러나, 에러가 짝수개로 발생하면 탐지하지 못하기 때문에 완전히 오류를 탐지할 수 있는 것은 아니다. 그래서 더 정확하게 오류를 탐지하기 위해서 two-dimension bit parity 방법을 사용한다. 이는 column과 row 단위로 parity를 추가하고 탐지는 물론 정정도 가능한 방법이다.
Parity Checking 보다 훨씬 정확한 방법으로 Cyclic Redundancy Check(CRC)가 있다. parity bit를 추가하는 것처럼 데이터 뒤에 추가 정보를 붙여서 수신측으로 보낸다. 데이터 비트를 G라는 divider로 나눈 값을 추가 정보로 붙인다. 이를 전송하고 수신자는 G를 공유하고 있기 때문에, 수신한 데이터를 G로 나눠서 나머지 값이 0이면 오류가 없다고 판단, 0이 아니라면 오류가 있다고 판단하고 버린다.
'CS > 네트워크' 카테고리의 다른 글
[컴퓨터망] 6. Link Layer(LANs:ARP) (1) | 2024.06.13 |
---|---|
[컴퓨터망] 6. Link Layer(MAC) (0) | 2024.06.12 |
[컴퓨터망] 5. Network Layer(ICMP, Network Management) (0) | 2024.06.08 |
[컴퓨터망] 5. Network Layer(OSFP, BGP, SDN) (0) | 2024.06.08 |
[컴퓨터망] 5. Network Layer(Control Plane, Routing Protocols) (1) | 2024.06.08 |