💡 TCP/IP가 보이는 그림책을 정리한 내용입니다.

지금까지 소개한 각 층의 역할을 다시 한번 살펴보자
애플리케이션층 : 서비스를 실현한다 →
트랜스포트층 : 데이터를 상대(서비스에 맞는 애플리케이션 프로토콜)에게 전달한다 →
네트워크층 : 데이터를 수신인의 컴퓨터까지 전달한다.
이번 글에서는 데이터 링크층과 물리층의 역할에 대해 소개할 것이다.
네트워크는 사용하는 통신 매체나 연결 방법에 따라 다양한 종류가 있다. 그리고 네트워크의 종류에 따라 통신 방법이 달라진다. 같은 규칙을 바탕으로 연결되어 있는 한 덩어리의 기기를 데이터 링크라고 하고, 데이터 링크내에서의 로컬 규칙을 처리하기 위해 있는 것이 데이터 링크층의 프로토콜이다.
그런데 컴퓨터를 네트워크에 접속하려면 케이블을 사용하거나 전파를 사용하는 등 다양한 방법이 있다. 하지만 어떤 방법을 취하든 접속 부분에는 네트워크 인터페이스 카드(NIC)라는 기기가 필요하다. 여기서 카드는 케이블 접속구가 붙은 기판을 가리킨다.
모든 NIC에는 제조시 제조회사에 따른 고유 번호가 할당되어 있다. 이것은 MAC 주소라고 하며, 데이터 링크층에서 수신인을 판단할 때 사용된다. 네트워크층에 있는 IP 주소와 같은 것으로 생각해도 좋을 것이다.
TCP/IP의 최하위층인 물리층은 특정한 프로토콜은 없으며, 그 기능이 기기 자체의 성질에 의존하는 부분이 크기 때문에 데이터 링크층과 하나가 되어 작동하는 층이라는 인식만 가지면 충분하다.
통신 매체
통신을 하기 위해 사용되는 네트워크 장비(하드웨어)를 말한다. 케이블이나 NIC 등이 있다.
NIC (Network Interface Card)
흔히 랜 카드라고 불리는 것으로, 네트워크에 접속하기 위해 컴퓨터 내에 설치되는 확장 카드다. 메인보드의 형태에 따라 ISA용과 ESA용이 있다.
MAC 주소
Media Access Control Address의 약자, 랜 카드마다 할당되어 있는 고유한 물리 주소를 말한다. 길이는 48비트이며, 네트워크 상의 다른 장치들은 이 주소를 사용해 네트워크 내의 특정한 포트를 찾는다. 네트워크 상에서 설정된 논리 주소인 IP 주소와는 달리 변경할 수 없다.
기기끼리 연결하는 데는 몇 가지 방법이 있으며, 동일한 방법으로 연결된 한 덩어리의 기기를 데이터 링크(data link)라고 한다. 데이터 링크간의 차이를 흡수하고, 네트워크층보다 위에 있는 층이 그 차이를 의식하지 않고 작동할 수 있도록 하는 것이 데이터링크층의 역할이다.
인터넷은 데이터 링크의 모음이다.
데이터 링크층에서는 데이터에 헤더를 붙인 것을 프레임이라고 한다.
데이터 링크 안에서 데이터를 어떻게 주고받을지를 결정하는 것이 데이터 링크층의 프로토콜이다. 데이터 링크 내에서 기기를 식별할 필요가 있을 때는 MAC 주소를 사용한다. 헤더에는 주고받기에 필요한 정보가 쓰여져 있다.
데이터의 송수신 방법은 프로토콜에 따라 달라진다.
💡 신호를 저달하는 것을 총칭해서 통신 매체라고 한다. 물리층은 통신 매체 그 자체를 가리킨다.
데이터 링크 안에서 신호가 흐르고 있는 부분을 물리층이라고 한다. 여기서 비트열과 신호의 변환이 일어나는데, 그 방법은 기기가 갖고 있는 성질에 의존하기 때문에 정해진 프로토콜이 없다.
물리층은 다른 층과 성질이 다르기 때문에 데이터 링크층의 일부로 생각하거나 TCP/IP 계층에는 포함시키지 않는 경우도 있다.
데이터 링크는 다음과 같은 요소로 구성되어 있다.
데이터 링크 상에 있는 기기를 말하며, 컴퓨터나 라우터 등을 가리킨다.
노드간을 연결하는 케이블 등을 말한다. 케이블의 양끝에는 노드에 접속하기 위한 단자가 붙어있다.
금속선 케이블 (주로 동축 케이블)
광섬유 케이블(유리)
기타 : 무선
💡 모든 데이터는 NIC라는 기기를 통해서 컴퓨터를 출입한다. IP 주소와는 별도로 NIC에도 고유의 번호가 할당되어 있다.
컴퓨터에서 네트워크로 가는 현관문이 되는 것이 네트워크 인터페이스 카드(NIC)라는 기기이다.
67:89:ab:cd:ed:01
NIC에는 MAC(Media Access Control) 주소라는 고유한 번호가 할당되어 있으며, 데이터 링크층에서는 이 번호를 사용하여 기기를 정한다. 네트워크를 지나가 갈때는 ip주소가, 데이터 링크층 안으로 들어간 후에는 MAC 주소가 사용되는 것이다. MAC 주소는 48자리 비트열을 8비트씩 :(클론) 또는 -(하이픈)으로 구분해서 16진수로 나타낸다. 제품 출하시에 할당되므로 변경할 수 없다.
데이터 링크층의 프로토콜의 대부분은 MAC 주소를 사용하여 다음과 같은 주고받기를 수행한다.
송신측에서 수신인의 MAC 주소를 얘기하면 수신측의 네트워크층은 헤더의 IP 주소를 보고 자기 앞으로 온 것만 받는다. MAC 주소가 동일하다면 NIC이 수신한다.
네트워크층에서 말하는 IP주소 같은 것이다.
💡 수신인의 IP 주소는 알지만 MAC 주소는 모르는 경우를 위해 ARP가 있다.
같은 데이터 링크 내에 있는 모든 기기에게 보낼 수 있는 MAC 주소를 브로드캐스트(broadcast) MAC 주소라고 한다. 브로드캐스트 MAC 주소는 모든 비트에 1이 들어가 있는 ff:ff:ff:ff:ff:ff 이다.
브로드캐스트 MAC 주소로는 라우터를 넘어갈 수 없다.
데이터 링크 내에서는 MAC 주소를 사용하여 기기를 특정하기 때문에, IP 주소만으로는 수신인에게 전달할 수가 없다. IP 주소를 가지고 상대의 MAC 주소를 조사할 때는 ARP(Address Resolution Protocol) 프로토콜을 사용한다.
ARP 패킷은 데이터 링크층의 프로토콜에서 캡슐화되어 송신된다.
ARP 패킷에는
1. 패킷타임(16비트)
→ 사용하는 데이터 링크의 종류이다
2. 프로토콜 타입(16비트)
→ 상위 프로토콜의 종류이다.
3. 하드웨어 크기(8비트)
→ MAC 주소의 크기를 바이트로 나타낸 것이다.
4. 프로토콜 크기(8비트)
→ 상위 프로토콜에서 사용되는 주소의 크기를 바이트로 나타낸 것이다.
5. 오퍼레이션(16비트)
→ 패킷의 종류이다. 요청은1, 응답은 100이 들어간다 (2진수 표기)
6. 송신측 MAC 주소(48비트, 3번 하드웨어 크기 값에 따라 변경 가능하다.)
7. 송신측 IP주소(32비트, 4번 프로토콜 크기 값에 따라 변경 가능하다.)
8. 수신측 MAC 주소(48비트, 3번 하드웨어 크기 값에 따라 변경 가능하다.)
→ 요청시에는 모두 0이 들어간다.
9. 수신측 IP주소(48비트, 4번 프로토콜 크기 값에 따라 변경 가능하다.)
→ 프레임 크기에 맞춰 이 뒤에 패딩을 붙이는 경우가 있다.
💡연결된 기기 하나 하나를 노드라고 한다.

축이 되는 케이블에서 선을 빼서 그 끝에 노드를 연결한다.
노드를 붙이고 떼는 것이 비교적 간단하다.

이웃하는 양쪽 노트를 연결하여 링 모양으로 연결한다. 링 내에서 노드의 고장이나 케이블의 절단 등이 한 군데라도 일어나면 전체가 통신할 수 없게 된다.
노드도 경로의 일부가 된다.

하나의 노드(일반적으로 허브)를 사이에 두고 다른 노드를 연결한다. 네트워크를 집중 관리할 수는 있지만, 중심이 되는 노드가 고장나면 전체에 영향을 미친다.
중심이 되는 노드가 네트워크를 총괄한다.

모든 노드를 일대일로 연결한다. 일부 케이블이나 노드가 고장나도 그곳을 피해서 통신을 계속할 수 있다.
주로 WAN의 접속 형태로 사용된다.
💡 가장 많이 보급되어 있는 데이터 링크이다.
이더넷에서는 네트워크 상의 모든 기기에서 신호를 보내고, 해당하는 기기만 받는 방법으로 프레임을 주고받는다. 사용하는 케이블이나 통신 속도에 따라 몇 가지 종류가 있다.
노드 A에서 노드 B로 데이터를 송신한다.
1. 송신하기 전에 송신중인 다른 노드가 없는지 조사한다.
2. MAC 주소 : b 앞으로 데이터를 보낸다.
3. 자기 앞으로 온 것일 때는 회수한다.
자기 앞으로 온 것이 아닐 때는 파기한다.
동시에 프레임을 보내면 데이터(신호)가 충돌해서 깨지는 경우가 있다. 이것을 충돌이라고 한다.
충돌을 감지했을 때는 조금 있다가 다시 보낸다.
이더넷의 프레임은 다음과 같다.
- 동기용 신호(56비트)
수신측에 프레임을 받을 준비를 시키기 위한 값이다. 10101010을 7번 쓴다.- 개시 부호(8비트)
이 다음에 프레임이 시작된다는 것을 나타내는 값이다. 10101011이 들어간다.- 수신측 MAC 주소(48비트)
- 송신측 MAC 주소(48비트)
- 프레임 길이/타입(16비트)
프레임 길이(바이트 단위)나 최상위 프로토콜에 전달하는 정보가 들어간다. 어떤 것이 들어가는지는 이더넷의 종류에 따라 다르다.- 데이터
캡슐화된 IP 헤더, TCP 헤더, 애플리케이션 헤더, 데이터가 들어간다. 만일 이 부분이 바이트 단위(8비트의 배수)가 되지 않을 때는 끝에 0을 더해서 데이터 길이를 조절한다.(최대 1500바이트)- FCS(Frame Check Sequence)(32비트)
프레임이 깨지지 않고 전달되고 있는지를 조사하기 위한 값
3번에서 6번까지의 값을 사용하여 산출한다.
*1번 2번을 합쳐서 서문(preamble)이라고 한다.
💡 프레임이 충돌하지 않도록 권리를 얻은 컴퓨터만 송신할 수 있는 데이터 링크이다.
네트워크 상을 흐르고 있는 토큰(token)이라는 프레임을 사용하여 통신한다. 토큰을 취득한 컴퓨터밖에 송신할 수 없으므로, 프레임 충돌이 발생하지 않는다. 이런 통신 방법을 토큰 패싱(token passing)방식이라고 한다.
토큰과 토큰 링의 프레임은 다음과 같다.
토큰 프레임
1. 개시 부호(8비트)
→ 개시를 나타내는 값이다.
2. 액세스 제어(8비트)
→ 토큰이 사용 중인지를 나타낸다.
3. 종료 부호(8비트)
→ 종료를 나타내는 값이다.
이것이 네트워크 안을 순회하고 있다.토큰 링 프레임
1. 개시 부호(8비트)
2. 액세스 제어(8비트)
3. 프레임 제어(8비트)
→ MAC주소를 사용하는 통신인지 아닌지를 나타낸다.
토큰 링은 TCP/IP 이외의 프로토콜에서도 사용되므로 반드시 MAC 주소를 사용한다고 단정할 수는 없다.
4. 수신측 MAC 주소(48비트)
5. 송신측 MAC 주소(48비트)
6. 데이터
→ 캡슐화된 IP 헤더, TCP 헤더, 애플리케이션 헤더, 데이터가 들어간다.
7. FCS(Fram Check Sequence)(32비트)
→ 프레임이 깨지지 않았는지 조사하는 값이다.
8. 종료 부호(8비트)
9. 프레임 상태(8비트)
→ 수령 신호 등이 들어간다.
광섬유 케이블을 사용한 토큰 패싱 방식의 데이터 링크이다. 이중 링을 만들고, 보통 사용자 링(1차 링)이 끊어져도 긴급 사용 링(2차 링)으로 통신을 계속할 수 있게 되어 있다.
주고받기 방법이나 프레임 구성은 토큰 링과 거의 비슷하다.
전파나 적외선을 사용하여 통신한다. IEEE802.11a, IEEE802.11b, IEEE802.11g라는 규격이 있다.
수신인이 데이터를 수신인이 지정하는 MAC 주소로 보낸다. 무선기지국(액세스 지점)에서 디지털파를 전파로 변환하고 데이터 링크 내의 모든 기기에 발신한다. (통신 가능 범위는 30-50m입니다.) 기지국에서 온 전파를 수신하고, 자기 앞으로 온 것일 대는 회수한다. 자기 앞으로 온 것이 아닐때는 파기한다. 이 방법을 CSMA/CA 방식이라고 한다.
블루투스(Bluetooth)는 2.4GHz대의 전파를 사용하여 통신하기 위한 규격이다. 주로 휴대 전화나 PDA와 같은 소형에 전력 용량이 적은 컴퓨터 등에 이용되고 있다.

💡 사용자 인증 기능이 추가된 프로토콜이다. 두 대의 기기간에 통신을 확립한 후에 주고받기를 시작한다.
PPP는 두 지점간에 일대일 통신을 수행하는 프로토콜이다.
절차
1. 통신을 하지 않을 때는 상대에게 통신 요청을 보낸다
2. 접속할 자격을 가지고 있는 사용자인지 아닌지를 확인한다.(사용자 인증)
3. 통신 조건에 대해 상담한다.
4. 통신을 시작한다.
PPP 프레임은 다음과 같다.
- 개시부호(8비트)
01111110이 들어간다.- 주소(8비트)
고정값(11111111)이 들어간다.- 제어부(8비트)
전송을 제어하기 위한 정보이다.- 프로토콜부(8비트)
상위층 프로토콜을 지정한다.
PPP는 TCP/IP 이외의 프로토콜도 처리하고 있다. 그래서 네트워크층의 프로토콜이 IP가 된다고 단정할 수 없다.- 데이터
캡슐화된 IP헤더, TCP 헤더, 애플리케이션 헤더, 데이터가 들어간다.- FCS(Frame Check Sequence, 32비트)
프레임이 깨져 있는지를 조사하는 값이다.- 종료 부호(8비트)
01111110이 들어간다.
PPP는 주로 전화선을 사용해 인터넷에 접속할 때 사용한다. 아날로그 회선이 아니라 디지털 회선인 ISDN(Integrated Services Digital Network)을 사용할 수도 있다.
클라이언트
👇🏻 모뎀 포트에 전화선을 연결한다.
1. ISP의 액세스 지점에 전화를 걸고, 회신이 연결되면 PPP로 통신을 시작한다.
👇🏻 디지털 파
모뎀
👇🏻 아날로그 파
전화 교환기
👇🏻 아날로그 파
모뎀
👇🏻 디지털 파ISP의 엑세스 지점(액세스 서버)
전화선이나 ISDN 회선을 사용하여 인터넷에 접속하는 경우에 필요하다.
클라이언트와 액세스 지점에서 통신을 확립한다.
- 사용자 인증을 한다.
- 액세스 지점을 경유하여 인터넷에 접속할 수 있다.
👇🏻
라우터
👇🏻
인터넷
💡이더넷에 인증 기능을 추가한 프로토콜이다.
이더넷 상에 있는 두 대의 컴퓨터간에 인증을 수행할 수 있도록 한 것이 PPPoE이다. PPPoE는 주로 xDSL이나 CATV 회선을 사용하여 액세스 서버를 경유하여 인터넷에 접속할 때 사용한다.
PPPoE프레임은 이더넷 프레임에 포함되어 전송된다.
ADSL이나 VDSL, SDSL 등 전화선을 사용한 디지털 통신 기술을 총칭해서 xDSL 또는 DSL이다. VDSL과 SDSL은 업로드와 다운로드의 통신 속도가 같은데 비해 ADSL은 업로드와 다운로드의 통신 속도가 다르다(다운로드 쪽이 빠른다)는 특징이 있다.
신호는 통신 매체나 주위 환경, 통신 거리 등의 영향을 받아서 신호가 약해지는 경우가 있다. 약해지는 정도가 심해지면 0인지 1인지를 판단할 수 없게 된다.
그래서 네트워크상에 신호를 보정하는 기기를 설치하고 신호의 일그러짐을 방지한다. 이 기기를 리피터(repeater)라고 한다.
신호의 보정에 덧붙여 서로 다른 두 개의 데이터 링크를 연결하는 기능을 가진 기기를 브리지라고 한다. 수신처의 MAC 주소를 보고 흘러온 것과 다른 데이터 링크 앞으로 온 것이면 보내고, 같은 데이터 링크 앞으로 온 것이면 파기한다.
데이터 링크층 및 물리층의 통신을 보조한다.
네트워크 상에서 케이블을 분기하기 위한 기기를 허브라고 한다. 하나의 신호를 여러 개의 케이블로 보내기 위해 신호를 증폭할 필요가 있다는 점에서 리피터의 역할도 갖고 있다.
신호의 보정, 증폭 기능을 갖고 있지 않은 패시브 허브(passive hub)라는 기기도 있다.
수신처의 MAC 주소를 보고 여러 개의 접속처 중에서 특정 노드에만 신호를 보내는 기능을 갖고 있는 허브를 스위칭 허브(switching hub)라고 한다.
수신처를 확인하고 갈 곳을 배당하기 때문에 일반 허브보다 통과에 시간이 걸린다.
ARP 프로토콜을 사용하여 조사하여 조사한 MAC 주소는 컴퓨터 내의 ARP 테이블에 저장되어 있다. arp 명령은 ARP 테이블을 표시하는 명령이다.
Windows의 경우 ARP 테이블에는 다음과 같은 정보가 들어있다. UNIX와 LINUX에서는 항목이나 표시 형식이 약간 달라진다.
| 항목명 | 의미 |
|---|---|
| Internet Address | IP 주소를 나타낸다 |
| Physical Address | MAC 주소를 나타낸다. |
| Type | 주소의 저장 형태를 나타낸다. static : 사용 유무에 관계없이 영구적으로 저장된다. dynamic : 일정 기간 사용하지 않으면 자동으로 삭제된다. |
ping 명령으로 응답이 없는 경우, 계속해서 arp 명령을 입력하고 MAC 주소가 표시되면 상대 기기는 네트워크상에 존재하지만, 보안 등 어떤 사정으로 ICMP 주고받기가 금지되어 있다는 것을 알 수 있다.
ipconfig의 옵션을 사용하면 MAC 주소를 포함한 TCP/IP의 상세 설정을 표시할 수 있다. 네트워크에 접속할 수 없는 경우, 자신의 컴퓨터의 접속 설정을 확인할 때 사용한다. Windows에서는 ipconfig /all, UNIX, Linux에서는 ifconfig-a라고 입력한다.
컴퓨터의 접속 환경이나 OS에 따라 표시 항목이 달라진다.
- 데이터 링크층의 역할을 간단히 설명하세요.
네트워크간의 차이를 흡수
데이터 링크층은 데이터 링크간의 차이를 흡수하고 다른 층이 그 차이를 의식하지 않고 잘 작동할 수 있도록 도와주는 역학을 갖고 있다.
- 데이터 링크층에서 데이터에 헤더를 붙인 것을 무엇이라고 합니까?
프레임(Frame)
통신에 사용되는 데이터는 각 계층에 해당 헤더가 붙어 각각 다른 이름으로 불린다. 데이터 링크층에서는 데이터에 헤더를 붙인 것을 프레임이라고 한다.
- 데이터 링크 내에서 기기를 식별할 때 사용하는 것은?
MAC 주소
MAC주소는 랜 카드마다 할당된 48비트의 고유한 물리적 하드웨어 주소를 말한다. 데이터 링크층에서는 이 주소를 사용하여 특정 기기를 지정한다.
- TCP/IP 5계층에서 비트열과 신호의 변환이 일어나는 계층은 무엇입니까?
물리층
데이터 링크 안에서 신호가 흐르고 있는 부분을 물리층이라고 한다. 여기서 비트열과 신호의 변환이 일어나며, 변환 방법은 기기가 갖고 있는 성질에 의존하기 때문에 정해진 프로토콜이 없다.
- 다음은 데이터 링크층 및 물리층에서 통신을 보조 하는 기기입니다. 각 기기에 대해 간단히 설명하세요.
- 리피터
- 신호의 일그러짐을 방지하기 위해 신호를 증폭하여 보정하는 기기
- 브리지
- 신호의 보정과 함께 서로 다른 2개의 데이터링크를 연결하는 기능을 가진 기기
- 허브
- 네트워크상에서 케이블을 분기시켜 이더넷 미디어를 여러 장비가 공유하도록 하는 기기
- 스위칭 허브
- 수신처의 MAC주소를 보고 여러 개의 접속처 중에서 특정 노드에만 신호를 보내는 기능을 갖고 있는 허브
- 프레임이 충동하지 않도록 권리를 얻은 컴퓨터만이 송신할 수 있는 데이터 링크를 무엇이라고 합니까?
토큰링
프레임 충돌이 발생하지 않도록 네트워크상을 흐르고 있는 토큰이라는 프레임을 사용하여, 토큰을 취득한 컴퓨터만 송신할 수 있도록 하는 방법을 토큰 패싱 방식이라고 한다.
- 네트워크 연결 방법의 종류를 아는 대로 쓰세요.
버스형, 링형, 스타형, 망형
- 버스형 : 축이 되는 케이블에서 선을 빼서 그 끝에 노드를 연결
- 링형 : 이웃하는 양쪽 노드를 연결하여 링 모양으로 연결
- 스타형 : 하나의 노드(일반적으로는 허브)를 사이에 두고 다른 노드를 연결
- 망형 : 모든 노드를 일대일로 연결, 주로 WAN의 접속형태로 사용된다.
- 컴퓨터에 저장된 다른 MAC 주소를 표시하는 명령은 무엇입니까?
arp 명령
ARP 프로토콜을 사용하여 조사한 MAC 주소는 컴퓨터내의 ARP 테이블에 저장되어 있다. arp 명령은 이렇게 컴퓨터가 갖고 있는 다른 컴퓨터의 주소 정보인 ARP 테이블을 표시하는 명령이다.