저번에 이어 OSI Model에 이어 이번에는 하드웨어 간의 통신을 담당하는 Physical Layer, Data Link Layer, Network Layer에 대해서 설명드리겠습니다. 지금부터 읽으실 때 계속해서 기억하셔야 할 부분이 있습니다. 바로 통신을 받는 것인지 혹은 보내는 것인지를 마음속으로 상기하시면서 읽으셔야 합니다.
Physical Layer
가장 밑에 있는 Physical Layer의 역할은 기기 사이의 연결입니다. Physical Layer의 경우 bits(0과 1)으로 통신을 하며. 외부에서 신호를 받게 되면 다음의 Data Link Layer로 전달해 줍니다. 그럼 Physical Layer에 해당하는 기기들은 허브(Hub), 모뎀(Modem), 케이블(Cable) 등이 있습니다.
그럼 Physical Layer에서 담당하는 역할이 뭘까요?
1. Bit Synchronization
예를 들어 설명드리자면 "안녕하세요 문괜입니다."라고 왔을 때 우리가 받게 될 내용은 긴 0과 1입니다. 그리고 긴 0과 1의 배열은 한꺼번에 도착하는 게 아니라 "안" -> "녕" -> "하" -> "ㅅㅔ..... 이런 식으로 오게 됩니다. 단지 우리가 동시에 왔다고 보이는 거뿐이죠. 그래서 이렇게 연속적으로 시간차를 두고 도착한 bits를 연결해야겠죠? Physical Layer에서는 Clock이라는 걸 이용해서 그걸 합쳐서 우리에게 전달하고 이 합치는 과정을 Synchronization(혹은 Data Synchronization)이라 합니다.
2. Bit Rate Control
통신을 하기전 각 Device의 Physical layer에서는 초당 얼마의 bit을 보낼 건지 약속을 정합니다. 왜냐하면 그 이상으로 오게 되면 정보가 오는 과정에서 유실되기 때문이죠. 그래서 Physical layer는 초당 몇 bit으로 보낼지 정하고 그 이상으로 보내지 않도록 합니다.
3. Physical Topologies
Computer Network에는 물리적으로 기기들이 어떻게 연결할지를 정하는 다양한 방식이 있는데요. 여기서 다른 기기들과 어떤 방식으로 연결 돼있는지를 보여줍니다.
4. Transmission Mode
전송모드라는 게 있습니다. 그리고 이 전송모드를 Physical Layer에서 설정가능합니다.
(Simplex, half-duplex and full duplex) 이게 어떤 방식인지는 다 아실필요는 없습니다.
Data Link Layer(DLL)
DLL에서 가장 중요한 역할은 Error free입니다. 즉, Physical Layer를 이용해 소통을 할 때 Error가 없도록 조정을 합니다.
그리고 DLL의 또 다른 역할은 Network에 Packet이 도착했을 때 MAC Address를 활용해서 Packet이 올바른 목적지에 도착하게 도와야 합니다. 당황스러우시죠? 네트워크는 네트워크입니다. Packet은 우리가 보낸 정보 혹은 받아야 하는 정보입니다. MAC Address는 주소입니다. IP와 유사하지만 정확히는 Local Network(지역 네트워크)에서 우리의 디바이스의 주소라고 생각하시면 됩니다.
비유하자면 한강에서 배달시켰는데 배달원 "문괜씨 짜장 곱빼기 왔습니다!"라고 소리치면 제가 "저 여기 있습니다!"하고 손들면 찾아오게 하는 겁니다.
배달원의 짜장면이 Packet, 한강이 Local Network 마지막으로 제 위치가 MAC Address 마지막으로 소리치는 게 DLL의 역할입니다.
그럼 이러한 정보들을 어디다가 보관할까요? 바로 Packet의 Header에 보관합니다. DLL은 이와 같은 정보를 캡슐화합니다. 이때 누가 보냈는지 누가 받아야 하는지 다 저장합니다.
그럼 언급한 과정들을 DLL의 기능으로 나눠서 설명드리겠습니다.
1. Framing
받는 기기에게 도움이 되는 정보를 보내는 기기에서 준비할 때 도움을 주는 함수입니다.
2. Physical Addressing
Framing은 Packet입니다. 즉, 위에서 언급한 받는 기기와 보내는 기기의 MAC Address를 Header에 입력하는 과정입니다.
3. Error Control
Packet을 주고 받을 때 손상되거나 받지 못하게 있는지 확인해 줍니다.
4. Flow Control
송수신되는 데이터의 양을 일정하게 해 줍니다. 위에서 말씀드렸듯이 받을 수 있는 양보다 많이 오면 데이터가 손상되거나 분실됩니다.
5. Access Control
다양한 기기들이 한개의 네트워크 채널을 사용할 때 어떤 기기가 지금 현재 네트워크에 송수신에 대한 권한이 있는지 구분해 줍니다.
Network Layer
Network Layer는 단순합니다. 일단 데이터 전송을 담당합니다. 특히, Packet routing이라는 걸 하는 데 사용가능한 Routers를 찾아 가장 빨리 목적지에 도착할 수 있는 길을 찾아냅니다. 그리고 발신자와 수신자의 IP Address를 Header에 입력합니다.
위 기능들에 설명 드리겠습니다.
1. Routing
발신자의 위치에서 수신자까지 갈 수 있는 가장 빠른 길을 찾는 것입니다.
2. Logical Addressing
여기서 가장 중요한 점은 IP Address를 이용해 이제는 단순 지역 네트워크 내에서의 기기의 주소뿐만 아니라 인터넷 기준의 기기의 주소를 특정해 확실하게 발신자와 수신자를 특정할 수 있습니다.
지금까지 Hardware Layers에 대해 설명드렸습니다. 그럼 다음은 뭘까요? 바로 Transport Layer입니다.
그럼 도대체 Transport Layer는 뭘까요?
참고자료
GeeksforGeeks: Basics of Computer Networking
GeeksforGeeks: Layers of OSI Model
* 항상 정확한 정보를 드리고 싶지만 실수가 있을 수도 있습니다!
* 실수를 찾게 되거나 질문이 있으시면 댓글 달아주세요!!
'개발일반 > 도대체' 카테고리의 다른 글
도대체 Software Layers는 무엇일까요? (2) | 2023.02.23 |
---|---|
도대체 Transport Layer 뭘까요? (0) | 2023.02.22 |
도대체 OSI Model은 뭘까요? : 7 Layers (0) | 2023.02.20 |
도대체 HTTPS는 뭘까요? (0) | 2023.02.17 |
도대체 HTTP는 뭘까요? (0) | 2023.02.16 |