날려적은 거라 나중에 다듬어야 함.
물리 계층의 역할은 데이터를 시그널로, 시그널을 데이터로 변환하는 것이다.
데이터를 시그널로 변환하는 방법에는 여러 가지가 있다.
그냥 데이터에서 0을 LOW로, 1을 HIGH로 변환하여 보내도 된다.
(이 같은 데이터 변환 방법을 "Unipolar NRZ" 라고 부른다.)
하지만 실제로 위 방법을 사용하지 않을 수도 있다.
데이터 통신 과목에서 배웠듯이, 아래의 요건들을 위해 데이터 코딩 기법을 이용한다.
데이터 코딩에는 세 가지가 있다.
NRZ-I, 맨체스터 코딩 등은 회선 코딩에 해당한다.
블록 코딩은 데이터를 잘라서 보낼 때 m비트 데이터를 n비트 신호로 변환해서 보내는 기법?
뒤섞기는 가령 0과 1이 연속으로 00000000000, 111111111111 이렇게 보내지면
받는 입장에서는 몇 번의 0과 몇 번의 1이 왔는지 카운팅하는 입장에서 헷갈릴 수 있다.
따라서 연속된 0 또는 1 패턴을 다른 형태의 패턴으로 변환하는 것을 말한다.
아래는 인터넷에서 가져온 자료인데, 여러 가지 회선 코딩 방법들이 있다.
실제로 RTL8201같은 이더넷 PHY칩의 데이터시트를 보면 Functional Desctiption에 이런 것들을 지원한다고 나와있다.
두 네트워크 장비 간에 RJ45 케이블로 연결되면
point-to-point로 auto-negotiation을 수행하면서
데이터 송수신 속도나 통신 방식 등을 맞추는 작업을 하는 것 같다.
물리계층의 종류가 copper interface랑 fiber interface로 나뉘어 진다는데, 자세히 안읽어봤다.
물리 계층에서 복원된 데이터를 MAC에 던져주면 MAC은 데이터링크 계층의 역할에 따라 이더넷 프레임을 브로드캐스팅하는 등의 동작을 수행하는 듯.