네트워크
4. Data Link Layer
YJH3968
2021. 6. 29. 16:16
728x90
Data Link Layer : physical layer가 신경 쓸 다른 layer에서의 요구와 어떤 하드웨어를 사용 중인지를 추상화한다.
1. Ethernet
- protocol은 개별 link로 데이터를 송신하는데 널리 사용된다.
- 역사적 배경 : 1983년에 switch나 switchable hub가 아직 발명되지는 않았는데, 네트워크의 많은 장치들은 하나의 collision domain을 공유했다. Ethernet은 프로토콜로서 이 문제를 CSMA/CD(carrier sense multiple access with collision detection)를 사용해 해결했다.
2. CSMA/CD
- 송수신 채널이 비었는지, 장치가 데이터를 전송할 수 있을지를 결정하는데 사용한다.
- 두 대 이상의 컴퓨터가 동시에 데이터를 전송하려 하면 컴퓨터가 이 collision을 감지하고 데이터 전송을 중단한다. 각 장치는 무작위의 시간을 기다려 데이터 전송을 시도한다.
3. MAC address(media access control address)
- 전송이 실제로 어떤 노드를 향했었는지 식별하는 방법
- 개별 네트워크 인터페이스에 부착된 전 세계적으로 유일한 식별자
- 48 bit의 숫자가 두 16진수 숫자로 이루어진 6개의 그룹으로 표현된다.
- octet : MAC 내 숫자들의 각 그룹을 표현하는 다른 방법(8 bit로 표현한다)
- 두 section으로 분리된다.
- MAC address의 첫 세 octet : OUI(organization unique identifier)로 IEEE(Institute of Electrical and Electronics Engineers)에 의해 개별 하드웨어 생산자에 할당한다. 이를 통해 네트워크 인터페이스의 생산자를 식별할 수 있다.
- MAC address의 마지막 세 octet : 각 가능한 address를 한 번만 할당해 모든 MAC address가 전 세계적으로 유일하도록 한다는 조건 하에서 생산자가 원하는 대로 할당이 가능하다.
- 하나의 collision domain으로 동작하는 네트워크 segment 상에서도 그 네트워크의 각 노드는 트래픽이 자신이 수신자인지를 안다.
4. Unicast
- 한 장치가 다른 장치로 데이터를 전달하는 방법
- unicast 전송은 하나의 수신 address만을 가리킨다.
- 목적 address의 첫 octet에 가장 덜 중요한 bit가 0으로 설정되면, 이는 Ethernet frame이 목적 address만 향함을 의미한다.
- 이는 데이터가 collision domain 상에서 모든 장치에 보내지지만, 의도한 목적지에만 전달돼서 실행됨을 의미한다.
5. Multicast
- 목적 address의 첫 octet에 가장 덜 중요한 bit가 1로 설정됐을 때
- local network signal 상의 모든 장치가 대상이 되지만, 하드웨어 MAC 주소와 관계없는 기준에 의존해 각 장치가 이를 수신하거나 무시한다.
6. Broadcast
- LAN 상의 모든 장치로 보낸다.
- broadcast address로 알려진 특수한 destination을 이용해 이룰 수 있다.
- Ethernet broadcast address는 FF:FF:FF:FF:FF:FF이다.
- 장치들이 서로에 대해 더 알기 위해 사용한다.
6. Data Packet
- network link를 통해 보내는 이진수의 데이터의 집합을 나타내는 용어
- 어떤 특정 layer나 기술에 한정되지 않고, 단순히 개념을 나타낸다.
- A 지점에서 B 지점으로 보내는 데이터의 집합
7. Ethernet Frames
- Ethernet Level애서의 data packet
- 특정한 순서로 나타낸 고도로 구조화된 정보의 집합
- 이를 이용해 network physical layer에서의 interface는 link를 통해 이동하는 bit의 나열을 해석 가능한 데이터로 바꾸거나, 그 반대로 할 수 있다.
- Ethernet frame의 거의 모든 section은 크기가 정해져 있다.
- 1. preamble
- Ethernet frame의 첫 번째 part
- 길이는 8 bytes(64 bits)
- 첫 7 byte : 1과 0을 번갈아가면서 나열해 frame 간 buffer로서 기능하고, network interface가 내부 clock을 동기화해 데이터를 보낼 때 속도를 조절하기 위해 사용한다.
- 마지막 byte : SFD(start frame delimiter)로 수신 장치에게 preamble이 끝나고 실제 frame content가 시작됨을 알린다.
- 2. destination MAC address
- 3. source MAC address
- 4. EtherType field
- 길이는 16 bits
- frame 내용의 protocol을 표시할 때 사용한다.
- 5. VLAN header
- frame이 VLAN frame임을 나타낸다.
- VLAN header가 존재하면 EtherType field가 뒤에 나온다.
- 가상 LAN을 의미한다.
- VLAN
- 같은 물리적 장치에서 여러 논리적 LAN을 가질 수 있게 하는 기술
- VLAN tag를 가진 frame은 그 특정 tag를 전달하기 위해 구성된 switch interface를 통해서만 전달된다.
- 이러한 방법으로 한 physical network가 여러 LAN처럼 작동할 수 있다.
- 트래픽의 형식에 따라 분리하는데 사용한다.
- 6. payload
- 전송하는 실제 데이터로, header가 아닌 모든 것을 의미한다.
- 길이는 46~1500 bytes
- 실제로 전송하는 IP, transport, application layer와 같이 더 높은 layer의 데이터를 포함한다.
- 7. FCS(frame check sequence)
- 길이 : 4 bytes
- 모든 frame의 checksum 값을 나타낸다.
- 장치가 Ethernet frame을 보낼 준비를 할 때 모든 정보(destination MAC address, originating MAC address, data payload 등)를 모은다. 그 후 데이터에 대해 CRC를 수행한 결과 나온 checksum number를 frame 끝에 FCS로 붙인다.
- receiving end에서 계산한 checksum이 FCS 필드에 있는 checksum과 일치하지 않으면 그 데이터는 버린다.
- 그 데이터를 다시 보낼지는 더 높은 layer의 protocol에 따라 결정한다.
- Ethernet은 데이터 손상만 검사하고 데이터 복원은 하지 않는다.
- checksum value
- frame에 대해 CRC를 수행해 계산한다.
- CRC(cyclical redundancy check) : 데이터 손상과 관련된 중요 개념으로 network 전송 뿐만 아니라 computing 전반에서 사용된다.
- 큰 데이터 집합을 대표하는 숫자를 만들기 위해 다항식의 나눗셈을 이용한 수학적 변환이다.
- CRC를 한 데이터 집합에 대해 수행할 때마다 항상 같은 checksum number가 나와야 한다.
- checksum value를 통해 데이터가 손상되었는지 확인할 수 있다.
728x90