[네트워크 마스터 시리즈] Data Link Layer (데이터 링크 계층)

noisrucer·2024년 4월 2일
3
post-thumbnail

1. 서론


이번 챕터에서는 OSI 모델 2계층인 데이터 링크 계층에 대해서 자세히 살펴본다. 특히, 각 계층의 역할을 명확하게 이해하는것이 추후 네트워크의 전체 흐름을 이해하는데 매우 중요하다.

이번 챕터는 데이터 링크 계층에 관한 이야기지만, 첫번째 포스팅이므로 캡슐화/비캡슐화, PDU(Protocol Data Unit)등 기본적인 몇가지 얘기로 다룬다.

2. 데이터 링크 계층의 주 역할


데이터 링크 계층의 주된 역할은 "같은 네트워크 내의 인접한 두 물리적인 단말(네트워크 인터페이스) 사이를 연결하는 것"이다.

이 문장을 이해하려면 다음 2가지를 정의해야한다.

2.1 같은 네트워크란?

같은 네트워크의 정의는 꽤 모호할 수 있다. 나는 같은 네트워크를 다음 2가지 방법으로 해석 하고자 한다. 지금은 아래 용어가 익숙치 않아도 읽어보고 넘어가도 좋다.

첫번째는 "논리적으로 같은 네트워크(subnet)"이다. 추후 IP를 공부할때 자세히 배우겠지만 만약 192.168.1.10/24 IP 주소를 가진 단말 A와, 192.168.1.20/24 IP 주소를 가진 단말 A가 있다면, 두개의 단말은 192.168.1 라는 동일한 네트워크 주소를 갖기 때문에 동일한 논리적인 네트워크(subnet)에 속한다 라고 말할 수 있다.

두번째는 "브로드캐스트 도메인(broadcast domain)"이다. 특정 네트워크 영역에 속한 어떠한 단말도 ethernet broadcast frame을 통해, 자신이 속한 네트워크 영역에 있는 다른 모든 단말에게 닿을 수 있다면, 그 네트워크 영역을 브로드캐스트 도메인이라고 한다. 조금 더 쉽게 풀어서 설명하면, 방음이 아주 잘되는 방안에 있다고 해보자. 브로드캐스트란 목청껏 "야호~" 라고 외치는 것이다. 그러면 방안에 있는 모든 사람들은 목소리를 물리적으로 들을 수 있을것이고, 방 밖에 있는 사람들은 아무것도 들을 수 없을 것이다. 이떄, 그 방은 네트워크로 해석할 수 있고, 방안에 있는 사람들은 같은 네트워크에 있다고 말할 수 있다. 이 네트워크 영역을 학교, 오피스 건물등 지역적으로 국한된 네트워크 영역을 뜻하는 LAN(Local Area Network)이라고 생각해도 좋다. 브로드캐스트 도메인은 ethernet 레벨에서의 정의라고 할 수 있다.

따라서 지금은 두번째 해석, 즉 브로드캐스트 도메인을 "같은 네트워크"의 정의라고 하겠다.

일반적으로 같은 subnet에 속하는 두 단말은 L2 protocol만을 이용해 소통할 수 있다, 즉, 같은 broadcast domain에 속한다(단, 100%는 아니다. 같은 subnet안에서 VLAN을 이용해서 여러개의 broadcast domain을 만들수도 있다).

2.2 단말이란?

단말이란 컴퓨터, 스마트폰과 같이 네트워크를 통해 소통할수 있는 모든 장치를 말한다. 엄밀히 말하면 네트워크를 통해 통신할 수 있는 NIC(Network Interface Card)가 있는 장치를 뜻한다. NIC는 우리가 전송하려고 하는 데이터를 실제 물리적인 신호로 보내는 장치이다. 또한, 각 장치는 데이터 링크 계층에서의 고유한 주소인 MAC(Media Access Control) 주소를 가진다.


이제 데이터 링크 계층의 역할을 다시 살펴보자.

"같은 네트워크 내의 인접한 두 물리적인 단말(네트워크 인터페이스) 사이를 연결하는 것"

위에서 배운 내용들을 바탕으로 다음과 같이 번역할 수 있다.

"서로 브로드캐스트로 닿을 수 있는 같은 네트워크 안에서 NIC를 가지는 두 장치를 연결하는 것"

2.3 데이터 링크 계층의 2가지 역할

앞서 살펴보았듯이 데이터 링크 계층의 주 역할은 같은 네트워크 내에 두 단말을 연결하는 것이다. 이 밖에도 데이터 링크 계층은 물리 계층의 신뢰성을 확보하는 역할(진짜로 비트열이 담겨있는 물리적인 데이터가 오염되지 않고 안전하게 잘 배달됐는지)등 다양한 역할을 수행한다.

데이터 링크 계층의 역할은 다음과 같이 정리할 수 있다.

  1. 같은 네트워크 내의 인접한 두 단말을 연결하는 것
  2. 물리 계층의 신뢰성을 확보하는 것
  3. 흐름 제어
  4. 회선 제어

3. Ethernet 이란?


Ethernet(이더넷)이란 wired LAN(실제 케이블로 연결된 지역적인 네트워크)에서 단말들이 어떤 방식으로 통신하고 어떻게 에러를 검출하는지 등에 대한 규칙들을 담고 있는 프로토콜이다. 1970년대에 Xerox PARC에 의해 개발 되었고 1980년대 초반에 정식 프로토콜로 채택되었다.

Ethernet 세계에서 주고 받는 데이터는 frame(프레임)이라고 불린다. Ethernet frame 형식은 Ethernet II 규약IEEE802.3 규약 두가지 종류가 있다. 현재 대부분 Ethernet II 규약을 사용한다.

Ethernet은 지금도 널리 쓰이는 기술이며 Ethernet II의 프레임 포맷은 1980년부터 지금까지 전혀 변하지 않았다.

참고로 물론 WIFI 등 무선통식 방식도 존재하지만 이 시리즈에서는 케이블로 연결된 본래의 Ethernet 문맥에서 얘기한다.

4. 계층을 이해하려면 헤더를 봐라!


4.1 계층 & 프로토콜

OSI 모델의 각 계층은 "특정 네트워크의 기능(ex. 같은 네트워크 내의 단말을 연결하는 Data Link 계층의 기능)을 추상화한 모델"이다.

그리고 각 계층의 추상적인 기능 모델을 구체적으로 구현하는 방법은 여러가지가 있을 수 있다. Transport layer(트랜스포트 계층)에는 TCP와 UDP, Network layer(네트워크 계층)에는 IP가 존재한다. 또한, 우리가 얘기하고 있는 Data Link 계층에는 Ethernet이란 구현체 프로토콜이 존재한다.

즉, Ethernet은 Data Link 계층의 역할을 실제로 구현하기 위한 여러가지 통신 규칙들이 모인 프로토콜이다.

그리고 이 통신 규칙들은 각 "헤더"를 통해 실현된다.

4.2 PDU (Protocol Data Unit)

각 계층에서 데이터는 두서없이 멋대로 전달되는 것이 아니라 일정한 규약과 포맷을 가지는 PDU(Protocol Data Unit)라는 메세지에 담겨서 전달된다.

또한 PDU는 다음 두가지로 구성된다.

  1. Header (헤더)
    • 각 프로토콜(ex. Ethernet, IP)의 규칙들을 담고 있는 다양한 필드들의 모음
  2. Payload (페이로드)
    • PDU가 전달할 실제 데이터.
    • 각 계층은 자신의 PDU의 payload에 뭐가 담겨있는지 모른다. 단지 위 계층에서 전달받은 데이터를 그대로 payload에 넣어줄 뿐이다.

그리고 각 계층의 PDU는 고유한 이름이 부여된다.

  1. Data link 계층의 PDU: Frame (프레임)
  2. Network 계층의 PDU: (IP) Packet (패킷)
  3. Transport 계층의 PDU
    • TCP: Segment (세그먼트)
    • UDP: Datagram (데이터그램)
  4. Application 계층의 PDU: Message (메세지)

4.3 캡슐화 (Encapsulation) & 비캡슐화 (Decapsulation)

위에서 언급 했듯이 각 계층은 PDU의 payload에 뭐가 담겨있는지 전혀 알지 못한다. 단지 바로 위의 계층에서 전달받은 데이터 전체를 마치 캡슐화해서 그대로 넣어줄 뿐이다. 이를 캡슐화(encapsulation)라고 한다.

반대로 데이터를 전달받는 입장에서는 각 계층이 자신의 계층에 해당하는 header을 쏙 빼고 적절한 작업을 수행한 뒤에 바로 위 계층으로 payload를 전달한다. 이를 비캡슐화(decapsulation)라고 한다.

4.4 Header는 중요하다

앞서 말했듯이 각 계층/프로토콜은 PDU의 payload에 뭐가 담겨있는지 알지 못한다. 그러면 통신을 할 때, 무엇을 보고 프로토콜의 규칙들을 달성할까?

전부 header에 담겨있다!

따라서, 네트워크를 잘 이해 하려면 header를 자세히 들여다 봐야한다. 앞으로의 챕터들을 읽을때 항상 "각 계층이 달성하고자 하는게 무엇인지""헤더"를 인지하면서 읽기를 바란다.

자 이제 데이터 링크 계층의 역할과 헤더의 중요성을 배웠으므로, 데이터 링크 계층으로 deep dive 해보자.

5. Ethernet Frame 포맷


이제 frame 포맷을 들여다보자. Frame은 다음으로 구성 되어있다. 어떤 책에서는 preamble/SFD도 헤더에 포함시키도 하는데 찾아본 바로는 송/수신지 MAC 주소와 타입만이 헤더라고 한다.

  • Preamble / SFD (Start Frame Delimeter)
  • Header
    • 송/수신지 MAC 주소
    • Type (타입)
  • Payload
  • FCS (Frame Check Sequence)

5.1 Preamble (프리앰블) & SFD (Start Frame Delimeter)

Preamble과 SFD는 수신자가 "이제 Ethernet frame이 오겠구나~" 하고 알아볼수 있도록 보내는 특별한 비트 패턴이다.

  • Preamble - 7 byte
    • 10101010 x 7개
  • SFD (Start Frame Delimeter) - 1 byte
    • 10101011

따라서 수신자는
10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011 비트열이 오면 이제 ethernet frame이 온다고 대비할수 있을것이다.

5.2 송/수신지 MAC 주소

Ethernet 헤더의 제일 중요한 컴포넌트는 송신지 MAC 주소수신지 MAC 주소다.

MAC 주소는 Ethernet 네트워크에서 물리적인 단말을 식별하는 "고유한 주소"이다. MAC 주소는 48 bit(6 byte) 크기를 가지며 다음처럼 1 byte씩 -이나 : 으로 구분해, 12자리의 16진수로 표기한다 (참고. 1 byte = 8 bit = 2^8개 정보 = 16 * 16)

MAC 주소 = 00:0c:29:ce:90:e4

송신 단말은 자신의 MAC 주소와 frame을 전송하려고 하는 상대의 MAC 주소를 헤더에 담는다. 수신 단말은 이 송신 MAC 주소를 보고 누구한테서 왔는지 식별한다.

물리 NIC의 경우 NIC가 만들어질때 ROM에 기록되고, 가상 NIC의 경우 하이퍼바이저로부터 MAC 주소를 할당 받는다.

MAC 주소는 앞의 3 byte와 뒤의 3 byte가 다른 의미를 갖는다.

  • 상위 3 byte - OUI(Organizationally Unique Identifier)
    • IEEE가 벤더별로 할당한 벤더 코드.
    • 여길 보면 어떤 벤더가 제조했는지 알 수 있다.
  • 하위 3 byte - UAA(Universal Administered Address)
    • 출하 시 벤더에서 할당하거나 무작위로 생성한 값이다.

그러면 실제 우리 컴퓨터의 MAC 주소를 확인해보자. 맥북의 경우 네트워크 > 와이파이 > 디테일 > 하드웨어 에서 확인할수 있다.

앞서 상위 3개의 byte는 OUI를 나타낸다고 했었다. https://standards-oui.ieee.org/ 에 들어가서 실제로 6c:7e:67 이 Apple에게 할당된 OUI인지 보자.

3번째 행에서 실제로 Apple 고유 OUI 인지 확인할수 있다!

MAC 주소가 항상 고유한건 아니다!
원래 MAC 주소는 고유하게 관리되는게 목적이었지만, 최근 벤더가 출하 시 MAC 주소를 재활용 하는 등 최근에는 꼭 고유하다고 할 수 없다. 하지만 같은 Ethernet 네트워크에서 MAC 주소개가 동일한 단말이 존재할수는 없으므로 이때는 재설정 해야한다.

5.3 Type (타입)

Type은 Network 레이어(L3)에서 어떤 프로토콜을 사용하고 있는지를 나타내는 2 byte 짜리 데이터이다.

TypeL3 Protocol
0x0800IPv4
0x86DDIPv6
0x0806ARP
......

5.4 Payload (페이로드) (feat. MTU)

Ethernet payload는 "Network 계층의 PDU(데이터) 그 자체"를 나타낸다.

하지만 Ethernet payload 크기에도 제약이 있다. Frame 하나를 택배 상자로 생각한다면, payload를 제외한건 배송정보가 적혀있는 송장 스티커이고, payload는 상자 안에 담겨있는 배송물 그 자체다. Ethernet 이란 택배 회사는 이 배송물이 너무 가벼워도 안되고 너무 무거워도 안된다고 한다.

Ethernet에서 그 배송물(payload)은 최소 46 byte, 최대 1500 byte 크기를 가질 수 있다. 이때, payload의 최대 크기를 MTU (Maximum Transmission Unit) 라고 한다. 즉, 다른 말로 해석하면 Network 계층의 PDU, 즉, IP packet의 최대 사이즈도 MTU = 1500 byte가 될 것이다. 추후 Network 계층과 Transport 계층을 공부하면서 자세히 배우겠지만 이 MTU가 결국 우리가 실제로 보내는 애플리케이션 데이터를 얼마나 쪼개야 할지를 결정한다.

또한, payload가 46 byte 미만이라면 padding 이라는 더미 데이터를 추가해 강제로 46 byte로 만든다.

빠른 사람들은 이미 눈치 챘겠지만, 앞서 맥북에서 MAC 주소를 확인하는 칸에 MTU 역시 있었다.

나의 맥북에서도 MTU는 1500 byte 이다.

참고로, MTU가 1500 byte 보다 큰 frame도 있다. 그런 frame을 jumbo frame이라 한다.

5.5 FCS (Frame Check Sequence)

FCS는 Ethernet frame이 손상되지 않고 잘 전달되었는가를 확인하기 위한 4 byte 짜리 필드다. 송신 측 단말은 이 필드에다가,

  1. 수신지 MAC 주소
  2. 송신지 MAC 주소
  3. Type
  4. Payload

를 합쳐서 CRC(Cyclic Redundancy Check)이란 연산을 수행한 뒤, 그 결과를 FCS 필드에 넣는다. 그리고 수신 측 단말은 전달받은 frame에서 위의 4가지 정보를 빼내서 동일한 CRC 연산을 수행하고, 그 결과가 FCS에 담겨있는 값과 맞는지 비교한다. 값이 다르면 도중에 frame이 손상되었다고 판단하고 폐기처리한다. 이렇게 FCS는 Ethernet에서 에러 처리를 담당하고 있는 중요한 녀석이다.

이 녀석은 맨 끝에 위치했다고 해서 trailer(트레일러) 라고도 불린다.

6. Ethernet의 3가지 통신 형태


Ethernet 네트워크의 통신에는 다음 3가지가 있다.

  1. Unicast (유니캐스트)
  2. Broadcast (브로드캐스트)
  3. Multicast (멀티캐스트)

곧 살펴보겠지만 Ethernet 네트워크에서 단말들끼리 통신을 할 수 있게 해주는 switch(스위치) 라는 장치가 존재한다. 지금은 통신 방식에 집중하자.

또한, 각각의 통신 유형에 따라 어떻게 frame header의 MAC 주소가 바뀌는지에 집중하자.

6.1 Unicast (유니캐스트)

Unicast는 1:1 통신이다. 송신자는 상대방의 MAC 주소를 알고있는 상황에서 송신자 MAC 주소 header 필드에 자신의 MAC 주소를 넣고, 수신자 MAC 주소 header 필드에 상대방의 MAC 주소를 넣은 뒤에 frame을 상대에게 전달한다.

6.2 Broadcast (브로드캐스트)

Broadcast는 1:N 통신이다. 여기서 N은 자신이 속한 Ethernet 네트워크에서 자신을 제외한 모든 단말들을 말한다. 따라서 한 단말이 broadcast frame을 송신하면 자신을 제외한 모든 단말이 그 frame을 수신한다. 이 broadcast frame이 도달하는 범위를 broadcast domain이라고 한다.

참고로 broadcast는 다음 챕터에서 배울 매우 중요한 프로토콜인 ARP(Address Resolution Protocol)에서 사용된다.

Broadcast frame을 송신할때, 송신지 MAC 주소는 unicast와 동일하게 송신 단말의 MAC 주소가 되지만, 수신지 MAC 주소는 모든 bit가 1인, 즉, 16 진수로는 ff:ff:ff:ff:ff:ff 라는 특별한 값이 들어간다.

6.3 Multicast (멀티캐스트)

Multicast 역시 1:N 통신이다. 하지만, 여기서 N은 네트워크의 모든 단말이 아니고 특정 그룹에 속하는 단말들이다. Multicast는 동영상 스트리밍이나 다인원 화상 비디오 앱 등에서 사용된다.

이 경우 송신지 MAC 주소는 자신의 MAC 주소가 되고, 수신지 MAC 주소는 IPv4의 경우 다음과 같이 구성된다.

  1. 상위 25 bit: 0000 0001 0000 0000 0101 1110 0 으로 고정
  2. 하위 23 bit: IPv4 주소(224.0.0.0 ~ 239.255.255.255)이 하위 23 bit를 그대로 복사

7. (L2) Switch와 Switching

7.1 Switch 란?

앞서 우리는 Ethernet이 뭔지, frame의 포맷, 그리고 Ethernet 네트워크에서의 3가지 통신 형태에 대해 살펴 보았다. 이제 실제로 어떻게 단말들이 통신하는지 살펴보자. 이 통신을 가능하게 해주는 장치가 바로 L2 switch(스위치)이다. 그냥 switch라고 하면 보통 이 L2 switch를 가리킨다.

Switch는 Data Link 계층에서 물리적인 단말들을 연결해주는 중간 매개 장치이다. Switch의 주 역할은 Ethernet frame의 전송 대상지를 바꿔주는 것이다. 이것을 switching (스위칭)이라고 한다.

Switch는 크게 다음 두가지의 부분으로 구성된다.

  1. Port (포트)
    • Switch는 여러개의 포트를 가지고 있다. 각 포트는 실제 하나의 단말과 물리적으로 연결된 인터페이스이다.
  2. MAC 주소 테이블
    • Switch 내부에는 MAC 주소 테이블을 가지고 있다. 이 테이블은 Port 번호 : MAC 주소 매핑정보를 가지고 있는 테이블이다. Switch는 이 테이블을 보고 특정 MAC 주소를 목적지로 하는 frame을 어떤 포트로 흘려보낼지 결정한다.

조금 더 세분화 해보면, switch는 다음 3가지 동작을 수행한다.

  1. Learning (학습)
    • Switch로 frame이 들어오면, frame안의 MAC주소와 frame이 전달된 포트 번호를 보고 Port 번호 : MAC 주소를 학습하여 MAC 주소 테이블에 기록한다.
  2. Forwarding (포워딩)
    • 타겟 MAC 주소가 어느 포트와 연결돼 있는지를 이미 학습한 경우, frame을 해당 포트로 "포워딩"(혹은 스위칭)한다.
  3. Flooding (플러딩)
    • 만약 타겟 MAC 주소가 어느 포트와 연결돼 있는지를 모르는 경우, 마치 홍수처럼 방금 frame을 전달받은 포트를 제외한 모든 포트에 frame을 복사해서 전달한다. 그리고 해당하는 상대의 응답 frame을 받아서 MAC 주소에 정보를 기록한다. 조금 있다 자세히 알아볼것이다.

7.2 Switch의 동작

MAC 주소 테이블에 수신측 MAC 주소 : Port 번호 엔트리가 존재할때와 존재하지 않을때를 나눠서 살펴보자. 참고로 전체 MAC 주소를 표기 하기에는 공간이 부족하므로 마지막 2 byte만 표기하겠다.

또한 송신자는 수신자의 MAC 주소를 이미 알고 있다고 가정한다. 만약 수신자의 MAC 주소를 모른다면 다음 Network 계층 챕터에서 배울 ARP를 이용해 구할 수 있다.

1. MAC 주소 테이블에 수신측 MAC 주소가 존재할때

a1a1의 MAC 주소를 가진 PC1c1c1 MAC 주소를 가진 PC3 에게 Unicast로 frame을 전송하고 싶은 상황이다.

  1. PC1은 송신자 MAC 주소 헤더 필드에 a1a1를 넣고, 수신자 MAC 주소 헤더 필드에 c1c1을 넣는다. 나머지 preamble, SFD, type, FCS 필드를 채워넣고 Ethernet frame을 만든다. 그리고 PC1의 NIC를 통해 switch에게 frame을 전달한다.
  1. Switch는 전달받은 frame을 비캡슐화하여 header를 읽는다. 송신자 MAC 주소가 MAC 주소 테이블에 존재하는지 확인한다. 이 경우 없으므로 Fa0/1 : a1a1를 learning하여 MAC 주소 테이블에 기록한다. 또한, header에서 수신자 MAC 주소를 추출한뒤, MAC 주소 테이블에 매핑되는 엔트리가 있는지 확인한다. 이 경우 존재하므로 flooding을 수행할 필요없이 frame을 Fa0/3로 전달 하기만 하면 된다.

  2. Switch는 Fa0/3 포트로 전달받은 frame을 forwarding(switching)하여 PC3에게 최종적으로 전달한다. PC3는 frame을 비캡슐화해서 frame 정보를 읽고 적절한 작업을 수행한 뒤, payload(data)를 상위 Network 계층에 넘긴다. Application 계층까지 쭉 타고 올라가고 비캡슐화 하면서 최종적으로 우리가 보낸 HTTP 요청 메시지를 전달 받을 수 있게 된다.

2. MAC 주소 테이블에 수신측 MAC 주소가 존재하지 않을때 - Flooding

똑같이 PC1PC3 MAC 주소를 알고 있고 frame을 전달하려는 상황이다. 하지만 이번에는 switch의 MAC 주소 테이블에 PC3의 MAC 주소 정보가 없다고 가정하자. 이때 switch는 flooding을 통해 PC3의 MAC 주소를 학습한다.

  1. PC1은 송신자 MAC 주소 헤더 필드에 a1a1를 넣고, 수신자 MAC 주소 헤더 필드에 c1c1을 넣는다. 나머지 preamble, SFD, type, FCS 필드를 채워넣고 Ethernet frame을 만든다. 그리고 PC1의 NIC를 통해 switch에게 frame을 전달한다.

  2. Switch는 전달받은 frame을 비캡슐화하여 header를 읽는다. 송신자 MAC 주소가 MAC 주소 테이블에 존재하는지 확인한다. 이 경우 없으므로 Fa0/1 : a1a1를 learning하여 MAC 주소 테이블에 기록한다. 또한, header에서 수신자 MAC 주소(c1c1)를 조회한뒤 MAC 주소 테이블에 엔트리가 존재하는지 확인한다. 이 경우에 존재하지 않는다. 따라서 flooding을 통해 해당 MAC 주소를 가진 기기(PC3)가 어떤 포트에 연결되어 있는지 학습 해야한다.

  3. [Flooding] Switch는 방금 frame을 전달받은 포트(Fa0/1)를 제외한 모든 포트들에 frame을 복사해서 flooding한다.

  4. [Flooding 응답] Flooding frame을 전달받은 각 기기들은 header을 추출하여 자신의 MAC 주소와 "수신자 MAC 주소"가 일치하는지 확인한다. PC2의 경우 일치하지 않으므로 폐기하고, PC3는 일치하기 때문에 응답 frame을 만들어 switch에게 보낸다 (이때 PC1 의 frame은 최종적으로 PC3가 전달받은 상태다! 임무를 완수한것이다). 이때, 응답 frame의 송신지 MAC 주소는 PC3의 MAC 주소가 되고, 수신지 MAC 주소는 PC1이 된다.

  1. Switch는 PC3으로 전달받은 frame의 header을 확인한다. 송신자 MAC 주소에 PC3의 MAC 주소가 들어있으므로 매핑 정보를 MAC 주소 테이블에 기록한다. 이제 다음부터 PC3로 frame을 전달할때 flooding을 할 필요가 없어졌다.

8. 마치며

이번 챕터에서는 Data Link 계층의 역할과 Ethernet 프로토콜의 동작 방식을 살펴보았다. 다음 챕터에서는 Network 계층과 IP 프로토콜을 살펴볼것이다. 참고로 ARP(Address Resolution Protocol)은 엄밀히 말하면 Data Link(L2) 계층에 속하지만, IP를 이해하고 난 다음에 ARP를 학습하는게 효과적일거라고 판단해 Network 계층 챕터에 넣었다.

피드백 혹은 틀린 점이 있으면 언제든 댓글 남겨주시면 감사합니다~!

References

  • 그림으로 공부하는 TCP/IP 구조
  • 성공과 실패를 결정하는 1%의 네트워크 원리
profile
backend engineer

0개의 댓글