| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- java
- spring security
- 일급 객체
- factory
- Volatile
- builder
- Spring
- Google OAuth
- OAuth 2.0
- 일급 컬렉션
- lombok
- synchronized
- Dependency Injection
- Today
- Total
HJW's IT Blog
컴퓨터 네트워크: 13주차 본문
#MAC address and ARP
> MAC address란
>> 기능: 로컬에서 사용되며, 한 인터페이스에서 다른 물리적으로 연결된 인터페이스로부터 frame 을 로컬로 받아올때 사용한다
>> Burned in NIC ROM (구워져 있다)
>> 48 bit: MAC Address = Manufacturer ID + Product ID (represented in hexadecimal)
>> LAN 의 각 adapter는 LAN 주소가 있다
>> MAC 주소 할당은 IEEE 가 도맡는다
>> Manufacturer 들은 MAC 주소 공간의 일부를 구매
>> MAC 주소 : 주민번호와 같다, IP 주소: 우편번호와 같다
>> MAC flat address -> Portability
- LAN card 사이에 옮기는 것이 가능
>> IP 계층적 주소 -> Not Portable
- IP 주소는 어떤 IP subnet에 노드가 연결되어 있는가에 영향을 받는다
> ARP: Address Resolution Protocol
>> Q: 어떻게 인터페이스의 MAC 주소를 결정할까? (IP 주소를 안다 가정)
>> ARP Table: LAN 에 올라가 있는 IP node 는 table 을 보유
- IP/MAC addr mapping
- ex) <IP addr; MAC addr; TTL>
- TTL: Time to Live -> mapping 이 언제 까지 살아있을지 (보통 20 min)
> ARP Example
>> A 가 B 에게 datagram 을 보내려 함
>> B 의 MAC 주소가 A의 ARP table 에 등록되어 있지 않다며?
>> A 가 B 의 ip 주소를 가진 ARP query packet을 broadcast
- destination MAC addr = FF-FF-FF-FF-FF-FF
- LAN 에 있는 모든 노드가 query를 받음
>> B 가 ARP 패킷을 받고 A 에게 자신의 MAC 주소를 반환
- frame 은 A의 MAC 주소로 (unicast)
>> A 는 A의 ARP 테이블에 IP - MAC 매핑을 cache화 한다.
- Soft State: 갱신되지 않으면 날아가는 정보
>> ARP 는 "plug and play"
- net 관리자의 개입없이 노드들은 각자의 ARP table 을 생성

> Addressing: Routing to another LAN
>> A가 R (라우터)를 통해 B로 datagram 을 보낸다면?
>> addressing 에 집중 ( IP {Datagram} and MAC {Frame})
>> A 가 B의 IP를 안다 가정
>> A 가 first hop router 의 ip를 안다 가정 (HOW?)
>> A가 R의 MAC 주소를 안다 가정 (HOW?)
>> A 가 IP datagram을 생성, IP source A, dest B
>> A 가 R의 MAC 주소를 목적지로 link-layer frame을 생성. 이때 frame은 A-B ip datagram 포함
>> R이 frame 을 받고, datagram을 제거한 뒤 ip로 전달
>> R이 datagram을 A-B forwarding
>> R 이 B의 MAC 주소를 dest로 사용해 link layer frame 을 생성 (즉, source & dest 갱신)
>>
> DHCP
- 이전에 포스트에서 다루었듯이 DHCP는 first hop router 의 ip 주소, DNS 서버의 이름과 ip, network mask 를
반환
> Subnet - Mask
>> Destination 이 다른 network 에 있다면 R 로 데이터그램을 보낸다

# Ethernet
> 오늘날 대부분은 wired LAN tech
> 하나의 chip, multiple seeds
> Simple & Cheap
> Kept up with speed race : 10mbps - 10 gbps
> Ethernet Frame Structure

>> Preamble
- 7 byte with pattern 10101010 followed by one bye with pattern 10101011
- 송/수신자의 clock rate 를 동기화 하기 위해 사용
>> Addresses
- 6 byte source / destination MAC addr
- 만약 adapter 가 matching dest addr 이나 broadcast addr 을 가진 frame 을 받으면 frame 을 network layer 로 보낸다
>> Type
- 상위 프로토콜을 가르킨다
>> CRC
- cyclic 중복성 체크 ( error detected: frame is dropped)
> Ethernet: Unreliable, Connectionless
>> No handshaking between sending and receiving NIC
>> Receiving NIC doesn't send ack or nack
>> Drop 된 데이터는 송신자가 상위 계층 rdt 사용시 복구가능
>> Ethernet's MAC protocol : unslotted CSMA/CD with binary backoff
> Ethernet: Physical Topology
>> 90 년도에는 bus 를 사용 (모든 노드가 같은 도메인) (충돌이 잘일어남)
>> 현제는 star 형식 사용
- 중앙에 스위치
- 노드끼리 충돌 x

#Ethernet Switch
> Link - Layer Device: takes an active role
>> 이더넷 프레임을 저장하고 forward
>> 수신된 프레임의 MAC 주소를 검사, 선택적으로 프레임을 전달
> Transparent
>> Host 는 스위치의 존재를 인식하지 못한다
> Plug-and-Play, Self-Learning
>> no configuration needed
#Switch: Multiple Simultaneous Transmissions
> 다음 상황에서 A' 은 interface 4를 통해 도달이 가능함을, B' 은 interface 5 를 통해 도달이 가능함을 어떻게 알까?
>> 각 스위치는 switch table 을 가진다
>> Table 에는 host MAC addr, interface to reach host, TTL

> 그렇다면 어떻게 이 테이블은 만들어질까?
>> Self-Learning
- 스위치는 스스로 어떤 호스트가 어떤 interface 를 통해 도달이 가능한지 배운다
- 프레임이 도착하면 스위치는 송신자의 위치를 알게된다
- When frame received at switch...
<record incoming link, MAC addr of sending host>
<Index switching table using MAC dest addr>
<만약 테이블에 entry 가 있다면>
- 만약 목적지가 프레임이 도착한 세그먼트에 있다면 : 프레임 삭제
- 그렇지 않다면 : entry 에 표시된 인터페이스로 프레임 전달
<테이블에 entry 가 없다면>
- 프레임을 도착한 인터페이스를 제외한 모든 인터페이스에 전달(flood)
>> Self-learning 스위치들은 서로 연결될 수 있다
- 다음 상황에서 A 에서 G로 보낼때는 어떻게 알까? --> 스위치가 하나일 때랑 똑같다

# Switches VS. Routers
> 둘 모두 store and forward
> Routers: Network layer
> Switches: Link Layer
> 둘 모두 forwarding table 존재
> Routers: Compute talbes by routing algorithms and IP
> Switches: Compute table by flooding and learning, MAC addr

#VLANs
> 다음 상황을 생각해보자

>> 만약 CS user 가 EE 로 사무실을 옮기지만 CS 스위치에 연결하고 싶다면
- ARP, DHCP 등 모두 LAN 전체를 훑어야 한다
- 보안, 효율 문제가 많다
> Virtual Local Area Network
>> VLAN 을 지원하는 스위치들은 하나의 LAN 을 여러개의 VLAN 으로 나눌 수 있다
> Port-based VLAN

>> Traffic Isolation
- 1~8 포트에서 오가는 frame은 1~8번 포트에만 도달할 수 있다
>> Dynamic Membership
- 포트는 동적으로 바뀔 수 있다
>> Forwarding between VLANS
- 라우팅을 통해 이루어진다
>> Truck Ports
- 한 VLAN이 여러 스위치 사이에 정의될 수도 있는데, 이때 그 사이의 frame 을 전달

'컴퓨터 네트워크' 카테고리의 다른 글
| 서버란 무엇인가 [FEAT: OSI 7 / TCP / IP] (0) | 2024.09.17 |
|---|---|
| Computer Network: 14주차 (0) | 2023.06.08 |
| Computer Network: 12주차 (0) | 2023.05.24 |
| Computer Network: 11주차 (0) | 2023.05.21 |
| Computer Network: 10주차 (0) | 2023.05.20 |