Course Outline
실생활에서 자주 사용되는 두가지 network에 대해 이해
- Local Area Network (LAN) 개념 및 구조
- LAN에서 주로 활용되는 세부 protocol
- Wide Area Network (WAN) 개념 및 구조
- WAN에서 주로 활용되는 세부 protocol
최근의 양대 네트워크
Local Area Network (LAN)
- 국 지적인 범위의 네트워크
- 가정, 회사 등
Wide Area Network (WAN)
- 국가 범위의 네트워크
- WCDMA, LTE, 5G, …
Local Area Network
LAN cable로 대변되는 네트워크
- Physical / link layer + IP (LAN 에 접속하기 위해서 표준에서는 physical / link layer가 정의되어 있고, ip 서비스를 받아야하므로 ip기능도 포함되어 있다.(router가 있는 ip layer를 건드리지는 않고 link layer를 기반으로 ip를 바꾸거나 등등..))
- Wired (이더넷) or Wireless (WiFi)
- 기능은 network interface card, network interface adapter에 써져있다.
주로 Ethernet이라는 L1-2 프로토콜 사용
- IEEE에서 표준 제정 (802.3, 802.11)
Physical Layer
- Manchester coding 기반 기저대역 변조
- 전송 속도별로 다양한 표준 존재
- point-to-point link vs. broadcast link (hub)
- physical layer 복잡하니까 자세히 X
CSMA / CD
Carrier Sense Multiple Access (CSMA)
carrier sense: 누가 전송하고 있냐 아니냐를 판단한다.
carrier: 유선이면 유선채널을 말하고 무선이면 무선 채널을 말한다.
- L2 측면에서 여러대의 호스트가 접속하는 상황에서 네트워크를 어떻게 접속하는지..
- 서로 간섭을 일으키는 pure ALOHA의 단점 보완
- Listen before speaking : 보내기 전에 주변의 신호를 감지해서 보내게 된다.
- 동시 전송 시 collision이 불가피함 → 이걸 유선에서 방지하기 위해서 CD등장
- b와 c 사이의 공간(space)는 b가 c로 보내는데 걸리는 시간이다.
- b가 t0에서 보내는 도중에 d 입장에서는 b가 t0에서 보내는지 모르고 b로 보내게 되면 충돌이 일어난다 (빗금)
with Collision Detection (CD)
- collision을 감지하고 하던 전송을 멈춤
- random backoff 후 재전송 → 이더넷 표준에 이렇게 작성 되어 있음
- random backoff: 랜덤한 시간을 선택을해서 랜덤한 시간을 기다린다
- 충돌 감지 - 멈춤을 서로 반복하 는 것을 방지
- collision detect / abort time 이면 B와 D가 전송을 멈춘다
- 멈춘후 random backoff 후 전송한다
- 또 충돌이 나면 random backoff 후 전송한다
Switched LAN
오늘날 대부분의 LAN의 형태 (위에서 본 collision 상황 a, b, c, d가 한선에 꽃혀있는 상황, 충돌이 날 수 밖에 없음)
이더넷은 1:1 연결
- Spanning tree topology : 중앙에서 퍼지는 형태
- packet swtich를 통해 L2 level networking
- 연결된 node끼리 ARP(주소대응) protocol 로 packet 전달
Ethernet
오늘날의 LAN에서 주로 쓰이는 L2-L1 프로토콜
- token ring, ATM 등 기타 프로토콜에 비해 간단하면서도 강력한 성능
- 10BASE-T, 10BASE-2, 100BASE-T, 1000BASE-LX, 10GBASE-T
- copper wire, twisted pair, optical fiber 등 모두 수용
Frame structure
- preamble(머릿말) (8byte) : 물리 신호를 검지하기 위한 약속된 패턴 →패턴을 먼저 시작하면 누군가가 전송을 했다는 걸 알 수 있다.
- dest./source address : MAC address
- type (2 byte): network layer multiplexing (어떤 multiplexing을 사용할 것인가)
- data (46 ~ 1500 byte)
- CRC (4 byte)
Address Resolution Protocol (ARP)
ARP: 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다
MAC address : network interface별로 부여된 주소 → frame 앞에 붙여서 전송한다.
- 모뎀의 일련 번호
- 6 byte (12 hexadecimal numbers, XX-XX-XX-XX-XX-XX) → 2^48표현가능 (48bit)
- 24bit : 제조사 번호, 24bit : 제품 번호
- Physical address라고도 불리움
- permanent
- globally unique : 6byte를 사용해서 globally unique 하게 만든다
- L2 frame 전송에 활용되는 주소
- 1번 기기에게 보냈다고 mac address에 명시하면 1번인 기기는 자신에게 온 data이므로 계속 올려주고 아닌 기기는 data를 폐기한다 → IP layer와 동일
- FFFFFFFF로 표시하면 모든 field가 1이므로 braodcasting이므로 모든 device에 보내진다.
L2에서 상대방에게 frame을 전달하기 위해서 상대방 MAC address를 알아야 함
이를 자동으로 파악해주는 프로토콜이 ARP임 (즉, 상대방의 mac address를 알아내기 위한 프로토콜이 ARP이다)
ip address는 이동할때마다 바뀌고 mac address는 계속 유지된다.
- 222.222.222.222의 mac addr? : c의 L3에서 ARP module에 문의한다
- ARP module에서 응답 : 49-BD-D2-C7-56-2A (mac address 알려줌) → c는 ARP table을 보고 자신이 속한 서브넷 마스크 영역에 있는 호스트 혹은 라우터들의 ip주소와 mac 주소를 참고
- L2에게 해당 mac address로 frame 전송 지시
ARP module은 ARP table 운용
- ARP table
- IP - MAC address간 mapping 관계를 저장하고 있다
- 지난 history
- TTL (Time To Live): 시간이 지나면 해당 항목을 소멸시켜서 network topology에 적응하도록 함 (얼만큼 이 정보가 유효한지 이런 정보를 가지고 있다)
- ARP module은 모든 device가 가지고 있다
- 내 L2 domain 내에서만 기억 → 내 subnet 안에서만 기억한다. 바깥에서는 ip address packet routing한다.
ARP table에 항목이 없는 경우
- ARP packet을 주고 받으면서 파악
ARP query
- broadcasting을 통해 해당 IP의 MAC address 문의
ARP response
- L2 domain내 아무 host나 답을 알고 있으면 회신
- standard frame
Plug & play
- 사람 개입 없이 ARQ query로 MAC address 문의해서 L2 도메인 내에 해당 MAC address를 알고 있으면 ARQ response로 회신해주어서 파악한다.
- 사람의 개입 없이 자동으로 ARP table 생성 및 관리
Packet Forwarding 예시
서브넷에 있는 host가 다른 서브넷에 있는 host에 데이터를 전달하는 과정
- swtiching - routing - swtiching을 통해서 전송이 전체적으로 이루어진다.
- 서브넷 안에서는 mac address를 가지고 switch가 packet switch를 통해서 전송을 하고
- 라우터는 IP address 기반으로 routing하고
- mac address기반으로 switch
- mac address 기반의 switching에 대해서 로컬 영역에서는 routing에 추가가 된다.
- (link layer ;L2 switch)swtich는 mac address기반으로 packet을 switching 해주는 역할을 한다.
Link-Layer Switches
L2 frame forwarding을 전담하는 장치 (L2에서 PDU = frame)
- transparent to the hosts : 호스트한테 투명하다
- router는 IP address를 가지고 있어서 host가 router의 존재를 인지하는데 switch는 id address를 가지고 있지 않아서 호스트 입장에서는 swtich가 안보여서 핑을 보내지 못함.
- 하지만 swtich의 하는 역할이 mac address를 기반으로 패킷을 forwarding하는 것으로 명백하다.
- 각 inteface에 연결된 장치의 MAC address를 기억하고 Forwarding / Filtering 수행
- collision을 원천적으로 차단하고 서로 다른 성능의 link들을 중재하듯 연결 가능 → 한 선에 여러개 있는게 아니라 switch에 여러 호스트가 1:1로 연결 돼서 collision발생을 차단 (이더넷 같은 경우 충돌의 여지가 있었음)
- swtich를 이용해서 collision을 원천적으로 차단하고 서로 다른 성능의 link들을 중재하듯 연결 가능
Self-learning
- switch table을 알아서 생성
- incoming frame의 source field (들어오는 frame source)로부터 MAC address 파악
- mac address가 있으면 그게 어떤 인터페이스에 연결되어 있는지를 저장하고 있다가 그걸 기반으로 패킷 swtich
- 이더넷 frame 헤더에 source address와 destination address, mac address가 있는데 그 mac address를 기반으로 바로바로 swtich를 가능하게 해주는게 인터페이스를 기억하기 때문이다
- 여기서 말하는 인터페이스란 몇 번 포트에 연결 되어있냐를 말한다.
- swtich에 선이 연결되어 있으면 frame이 헤더 정보를 보고 인터페이스 (포트)에 맞게 데이터를 빼주면 된다.
- aging time이 지난 후 해당 항목 삭제
WiFi
Ethernet의 무선 버전 (IEEE 802.11)
- Access Point(AP) : 유선과 무선 경계에 있는 node
- wireless host와 무선 접속, 유선으로 연결
- 무선으로 디바이스끼리 연결되어 있고, 유선으로 인터넷이 연결되어 있다.
- 세대별로 발전 (a, b, g, n, ax, …)
Service Set Identifier (SSID)
- AP의 이름
channel
- AP가 동작하는 주파수 범위의 번호
Associate
- host가 AP에 처음 접속할 때 등록하는 개념
- 접속을 하는 과정이 말한다.
Beacon frame
- AP 자신에 대한 정보를 담아서 주기적으로 전송하는 frame
- SSID, MAC address 등 을 일정 신호 세기로 전송한다.
- host는 beacon frame 수신을 통해 주변의 AP 존재를 감지하고, 신호 세기 측정
- wifi module 켰을 때 어떤 와이파이가 있는지 뜨는데 이 beacon frame 때문에 뜨는 것이다.
CSMA / Collision Avoidance
무선에서 충돌 방지하는 방법은 유선에서와 다르다
유선에서는 내가 전송을 하고 있는 과정에서 다른 친구가 전송을 하고 있는지 안하고 있는지 판단가능.(hold plexing? 이 가능) utp 케이블을 사용하는데 케이블에서 twisted가 필요한데 twisted는 선이 2개이고 각각 rx, tx로 나눠져서 두개가 동시에 존재하고 서로 간섭을 일으키지 않으므로 data를 보내면서 감지 가능
무선에선는 보내면서 바로 감지를 하는 hold plexing이 안된다. 왜냐면 통로가 하나이고 하울링 문제로 불가능 ( 같은 채널로 data를 보냄)
- Collision 방지를 위해 sensing 직후 random backoff 수행
- Short Inter-frame Space (SIFS)
- Distributed Inter-frame Space (DIFS)
- data를 보내기 전에 collision을 미리 방지
DIFS와 SIFS는 Data와 ACK 를 보내기 이전에 일정 시간을 뜻합니다.
https://junghyun100.github.io/CSMA_CA(2)/
Request-To-Send / Clear-To-Send
- 사전 채널 점유 과정을 통해 collision 방지
- 데이터를 보내는데 10ms가 필요 10ms동안 내가 잘 보내고 있다가 5ms에서 다른친구가 보냈다면 내가 10ms동안 시간을 낭비하게 되는것 따라서 10ms를 낭비하기 전에 미리 controll packet을 먼저 보낸다 → 10ms동안 나만의 시간을 보장 받을 수 있음
- controll packet 이란 나 data 보낼거니가 아무도 보내지마, 나 받을 거니까 아무도 얘기하지마
- 충돌을 막기 위해 802.11은 영역내의 상태를 보기위해 RTS, CTS 두가지를 사용한다.
- hidden node problem
Cellular System
디바이스가 기지국을 통해 서비스 받는다.
서비스 영역을 cell로 나누어서 무선 통신 서비스 제공
- 각 cell에 base station(기지국)이 배치됨
- 단말은 cell을 자유롭게 이동하면서 통신 서비스를 받음
구성
단말 - 기지국 - 망
- 기지국들의 모음 : Access network
- 교환기 등 각종 망 장비들의 모음 : Core network
4세대 이동통신 시스템 (WAN을 아래 2가지로 나눌 수 있다)
Radio Access Network (RAN)
- 기지국(eNB)이 이루는 네트워크
- S1 : 기지국 - 코어망 간 연결, X2 : 인접 기지국 간 연결
- 사용자에 가까운 네트워크
- 퍼져있는 서비스를 제공
Evolved Packet Core(EPC)
- 코어망
- MME, S-GW, P-GW, HSS
- 사용자들 관리와 기지국들 관리하는 장비가 모여있는 곳
- 중앙제어장치
특징
EPC
- 이동성 관리하니까 우리나라가 하나의 cell로 보여질 수도 있다. → 광범위한 커버리지 및 신호환경
RAN
- wifi 보다 LTE가 견고하고 안정한 서비스 제공
GTP Tunneling
- RAN / 코어망 내부에서 packet 전달을 위해 별도의 IP 대역 할당
- data IP packet 전달 시 RAN/코어망 내부를 위한 IP encapsulation을 한번 더 수행
- IP encapsulation은 RAN / 코어망 내부에서만 유효하며, 기지국 → 단말 혹은 코어망 → 외부망으로 나갈 때는 본래의 IP packet으로 복원해서 전달
- 코어망, eNB 간 routing은 GTP tunneling 을 통해 별도의 IP 체계 하에서 routing됨
tunneling 예시
ip layer에서의 헤더는 source ip address하나 destination ip address 하나였음.
Packet Forwarding
LTE는 이동성 관리를 보장하는 경우 2가지가 있다
1. 계속 연결된 상태 (connected)
2. 통신하지 않은 상태 (IDLE)
단말과 기지국이 연결된 상태 (CONNECTED)
- 단말이 연결된 기지국을 코어망에서 실시간으로 추적하고 연결 유지
- handover를 하면서 신호가 커진 곳에 연결 재설정
handover: 연결을 바꿔준다
- S1 : 기지국 - S-GW 간 연결, S5 : S-GW - P-GW간 연결
- 단말이 기지국을 옮기면 handover가 발생하면서 S1이 재설정됨
단말과 기지국이 통신하지 않는 상태 (IDLE)
단말은 최소한의 기준으로 코어망에 위치 등록 (Tracking Area update)
기지국 기준으로 tracking area 만들어 놓는다.
UE가 통신을 하고 있지 않은 idel 상태에 있는 중, UE로 향하는 트래픽이 발생하게 되는 경우, LTE 망은 UE를 깨워서 데이터를 수신할 수 있게하여야됨. 이 깨우는 행위가 Paging임.
이 Paging을 하는 단위가 TA (Tracking Area)임.
- TA를 벗어나면 Tracking Area Update(TAU) 과정을 통해 위치 갱신
필요시 코어망은 기지국을 통해 paging 전달
- paging을 수신한 단말은 기지국에 접속해서 통신 가능 상태로 천이 (통신 가능 상태로 옮겨진다)
- idle상태인데 paging을 들을 수 있는 이유는 기지국이하는 얘기는 device가 다 알고있어야함
'CS > 컴퓨터네트워크' 카테고리의 다른 글
13. Application Layer 2 (0) | 2023.06.04 |
---|---|
12 Application Layer 1 (0) | 2023.05.28 |
10. Layer4: Transport Layer (0) | 2023.05.22 |
9. Layer 3: Routing (0) | 2023.05.16 |
7. Layer 3: Internet Protocol (0) | 2023.04.15 |