이 글은 이화여자대학교 이미정 교수님의 2014년 2학기 컴퓨터 네트워크 강의를 기반으로 재구성한 것입니다. 삽화는 링크를 출처로, 저작권은 J.F Kurose and K.W. Ross에게 있다는 것을 밝힙니다.
이 글에서는 internet network와 protocol을 전체적으로 살펴보며 network, 특히 internet에서 사용하는 단어와 간단한 개념을 살펴본다.
OSI 7계층
OSI는 위와 같이 7개의 layer로 나뉘는데, 이 강의에서는 application layer, presentation layer, network layer 3개를 중점적으로 살펴본다.
Internet이란?
Internet Component
internet은 크게 3가지 component로 구성된다. host, link, router/switch가 그것이다.
- host / end system : internet의 양 끝단에는 host가 있다. host는 user application을 hosting하기 때문에 host라고 부른다. 한편, 양 끝단에 있기 때문에 end system이라고도 부르는데, host와 end system은 같은 말이라고 생각하면 된다.
- router : internet의 중간에는 수많은 router가 서로 연결되어 있다. router는 다음 router를 찾아가면서 user message를 전달한다.
- link : communication link는 host-router, router-router 등을 물리적으로 연결해 주는 것을 말한다.
interenet은 수많은 router들이 서로 연결되어 있고, router들이 user message를 전달해 준다. 때문에 internet은 network of networks라고 정의할 수도 있다. 좀 더 자세한 내용은 network core에서 다룬다.
Protocol
protocol은 internet에서 송/수신하는 message를 제어하며 message format, order, action을 정의한다.
한편 protocol은 모든 사람들이 사용하는 약속이기 때문에 표준화가 중요한데, IEFF, Internet Engineering Task Force에서 표준화를 하며 표준화 이름은 RFC, Request For Comments를 사용한다.
Network 구성 - Network Edge
network는 network edge과 network core로 이루어진다.
network edge는 network의 바깥쪽 부분으로, end system(host), access network, link로 이루어진다.
Access Net
host를 network에 연결시키는 것이 access network이다. access network에는 2가지 중요한 특징이 있다.
- bandwidth : transmission rate, 초당 옮기는 bit량.
- shared or dedicated : 자원을 공유하는지 독점하는지 여부.
- shared의 경우 해당 회선을 모두가 같이 사용하기 때문에 동시에 여러 명의 사용자가 접속하면 속도가 느려진다. 또한 보안도 취약하다.
같이 읽으면 좋은 글 : 1%의 네트워크 - 4. 인터넷 내부 포스팅. 해당 글에서는 access 회선이라고 칭한다.
access network : DSL
전화 회사들이 access network를 제공하는데, 이를 DSL, Digital Subscriber Line이라 한다. DSL로 access network를 구성하는 경우에는 각각의 가정에 dedicated 방식으로 internet을 제공한다. (DSL의 경우 전화선과 인터넷을 같은 회선으로 사용하는데, 전화를 다른 집과 공유하지 않는 것과 마찬가지로 인터넷도 다른 집과 공유하지 않는다.)
DSLAM은 DSL access multiplexer의 약자로 여러 DSL modem과 모두 연결되는 기기이다. 이 때 DSL modem의 뒤와 DSLAM 앞에는 spliter가 있는데, 이를 사용해 전화 신호인지 인터넷 신호인지 분리한다. 전화 신호면 전화 network로 보내고, 인터넷 신호면 ISP로 보낸다.
위 그림에서는 DSLAM의 앞에 spliter가 없는데, 실제로는 DSLAM의 앞에 spliter가 있다.
일반적으로 upload 량보다는 download 량이 더 많기 때문에 download 속도가 더 빠르다. upload는 약 1Mbps, download는 10Mbps이다.
1%의 네트워크 포스팅에서도 같은 내용을 다루었다.
access net : Cable
access network는 DSL 이외에도 여러 방식이 있다.
cable로 internet에 연결하는 경우에는 DSL modem 대신 cable modem을, DSLAM 대신 CMTS(Cable Modem Termination System)을 사용한다. cable modem은 spliter를 거쳐 cable headend(전화국과 유사한 역할을 한다.)에 있는 CMTS에 연결된다. 이 때 DSL 방식에서는 spliter가 전화 신호와 인터넷 신호를 분리했던 것처럼, cable 방식에서 spliter는 TV 신호와 인터넷 신호를 분리한다.
cable access network의 경우 shared이다. 일반적으로 cable은 TV용으로 많이 사용하는데, TV는 broadcast이기 때문이다. 때문에 bandwidth가 큰 회선 하나를 보내고 이걸 나누어 여러 사용자의 가정으로 보내는 식으로 쓴다.
한편 cable headend는 hierarchy를 가지고 있다. 이 때 cable headend끼리는 높은 bandwidth가 필요하기 때문에 fiber로 연결한다. 반면 하나의 headend와 일반 가정집 사이에는 적당한 bandwidth만 있으면 되기 때문에 coax로 연결된다. 이러한 특징 때문에 cable 방식은 HFC, Hybrid Fiber Coax로 연결된다고 한다.
cable access network의 경우 download는 30Mbps, upload는 2Mbps이다. 그러나 shared이기 때문에 더 느릴 수도 있다.
access net : Home Network
집의 모든 network 기기를 묶은 것을 home network라고 한다. 보통 하나의 가정집에는 여러 대의 desktop과 여러 대의 network 기기가 있기 때문이다. 때문에 집의 모든 network 기기를 router 하나에 모두 연결시키고, 이 router가 전화국의 access network로 연결된다.
[home network(집의 모든 network 기기) - 집의 router - 전화국 - ISP]로 연결된다.
1%의 네트워크 책에서는 인터넷 접속용 router로 표현했다.
이 때 wifi access point(공유기)는 router에 접속한다.
access net : Ethernet, Enterprise Access Network
일반 가정집의 경우에는 하나의 router로 모든 network 기기를 감당할 수 있지만 회사나 학교처럼 수많은 network 기기가 있는 경우 형태가 다르다.
이 경우 각 network 기기는 router 대신 ethernet switch에 연결되고, ethernet switch가 institutional router에 연결되고, institutional router가 ISP에 직접 연결되는 형태로 구성된다.
[network 기기 - ethernet switch - institutional router - ISP]의 순서이다.
이 때 회사나 학교의 경우 전화국이나 cable 회사를 통하지 않고, ISP로 바로 회선이 연결되어 있다. 구체적으로는 [대표 router]가 ISP에 dedicated line으로 직접 연결되어 있으며, 이 line은 ISP가 직접 깔아준다.
ethernet switch bandwidth는 10Mbps, 100Mbps, 1Gbps, 10Gbps 등 다양하다.
wireless access network - wifi / LTE
무선 access network는 크게 2종류가 있다. 둘 모두 shared이다.
- wireless LANs (Wi-Fi)
- wifi access point에 연결 - [기관이냐 가정이냐에 따라 router 또는 ethernet switch에 연결]
- bandwidth가 높다. 802.11b의 경우 11Mbps, 802.11g의 경우 54Mbps이다.
- 좁은 지역(300m, 보통 한 건물)을 cover한다.
- wide-area wireless access (cellular)
- 기지국이 제공하며, 넓은 지역(수십 km)을 cover한다.
Host
앞에서도 언급했든 network application을 hosting하기 때문에 host라고 하며, network의 끝단에 있기 때문에 end system이라고도 한다. 일반적인 다른 application은 내부적인 동작만 수행하지만 network application은 다른 기기와 message를 주고 받는다.
이 때, application message는 packet의 형태로 변환하고 link로 내보내고/받는다. packet의 형태로 변환하는 이유는 packet switching에서 살펴본다.
Link
앞에서도 언급했듯 link는 host-router, router-router 등을 물리적으로 연결해 주는 것을 말한다.
link는 크게 2종류, guided media와 unguided media로 나뉜다.
- guided media : 물리적인 wire를 사용하는 link. 아래 3종류가 있다.
- twisted pair cable (copper) : ethernet을 연결하는 데 쓰인다.
- fiber optic cable (광케이블) : HFC와 internet core를 연결할 때 사용된다.
- headend를 연결하는 데 쓰인다. transmission rate가 매우 높기 때문에 internet core 연결할 때도 사용된다.
- 속도가 매우 빠르다.
- 빛으로 신호를 주고받기 때문에 외부 noise에 의해 발생하는 오류가 거의 없다.
- coaxial cable : headend와 사용자를 연결할 때 쓰인다.
- 특징으로는 broadband이다. cable 내부에 여러 개의 channel이 있기 때문이다.
- unguided media : 무선으로 연결되는 link이다. radio, Wi-Fi, cellular 등이 있다.
- radio의 경우 [reflection, obstruction by object, interference] 3가지 단점이 있다. 장애물에 의해 반사 또는 차폐되어 신호가 약해지기도 하고, interfernce(간섭)이 발생하기 쉽기 때문에 noise에 민감하다.
- wireless LAN (Wi-Fi) : 802.11b(11Mbps), 802.11g(54Mbps)로 사용된다.
- wide-area wireless (cellular) - 3G, LTE 등이 있다.
- satellite : 위성과 연결할 때 쓰인다. 아래 2가지로 나뉘는데 위성의 높이에 따라 사용한다.
- geostationary satellite : 위성을 높이 띄우는 경우 사용한다. delay가 크다.
- low-earth orbiting
- radio의 경우 [reflection, obstruction by object, interference] 3가지 단점이 있다. 장애물에 의해 반사 또는 차폐되어 신호가 약해지기도 하고, interfernce(간섭)이 발생하기 쉽기 때문에 noise에 민감하다.
Network 구성 - Network Core
network core는 본질적으로는 router와 switch들의 연결로 이루어져 있으며, source부터 destination까지 application message를 전달하는 것에 목표를 둔다. 이 때 message를 전달하는 방법에는 circuit switching과 packet switching 2가지가 있다.
Network Message 전달 : Circuit Switching & Packet Switching
Circuit Switching
전화 network와 동일하게 사용하는 방법이다.
전화의 경우, message를 전달하기 위해 사용자가 "call"을 걸면 user call이 발생하고, 이는 call setup을 발생시킨다. call setup은 어떤 router/switch를 사용할지 경로를 결정하고, 이 때 사용할 network resource를 예약한다.
전화를 생각해 보자. 전화의 경우 끊기 전까지 계속 송신자와 수신자가 연결되어 있기 때문에 그 사이에 있는 모든 link를 계속 사용한다.
그러나 circuit switching을 사용해 data를 송/수신할 때는 resource를 분할해 두어야 한다. 만약 resource를 분할하지 않은 경우, 한 사용자가 특정 link를 사용하면 다른 사용자는 해당 link를 사용할 수 없게 되기 때문이다. 따라서 resource를 분할하고 사용하지 않은 resource만 사용자에게 할당해 link를 예약한다.
FDM & TDM
resource는 FDM 또는 TDM을 사용해 분할한다.
FDM은 Frequency Division Mulplexing의 약자로, frequency로 나누는 방법이다. 나누고, 사용자별로 다른 frequency를 할당한다.
TDM은 Time Division Multiplexing의 약자로, time으로 나누는 방법이다. 나누고, 사용자별로 다른 time을 할당한다.
data용으로는 부적합한 circuit switching
전화는 contiguous하게 이뤄지기 때문에 circuit switching을 쓸 수 있다. 그러나 data의 경우 intermittent(간헐적)으로 이뤄지기 때문에 data용으로는 부적합하다.
circuit switching은 resource가 할당되면 그 resource를 다른 사용자가 쓸 수 없는데 data 통신은 intermittent하게 이뤄지기 때문에 100% 사용되지 않는다. 때문에 resource가 낭비된다.
Packet Switching
packet switching의 가장 큰 특징으로 3가지가 있다.
- no call setup : call setup 과정이 없기 때문에 resource를 예약하지 않는다. 만약 통신하면서 link가 필요하면 그때그때 resource를 사용한다.
- destination address
- store & forward
- no call setup
만약 필요한 link가 free인 경우, 그 link의 모든 bandwidth를 사용해 data를 전달하고, 만약 free가 아닌 경우 끝날 때까지 기다린다. 그러나 이 방법을 사용할 경우 1개의 긴 message가 link를 계속 가지고 있으면 resource가 낭비된다. 때문에 모든 application message를 packet으로 잘라서 보내며, 이 방식을 통해 각 packet들은 link를 비슷한 시간만큼 점유한다.
- destination address
packet switching에는 resource를 예약하지 않는다. 때문에 해당 packet이 어디로 가야 하는지는 packet 내부에 있는 destination address를 사용해 판별한다.
- store & forward
router는 packet을 받으면 destination address를 확인한 후, 보낼 곳을 결정한다. 이 때 router는 packet이 전부 도착할 때까지 기다린 후에 packet을 parsing하고, destination address에 해당하는 곳으로 보낸다. packet을 잠시 저장한 이후에 보내기 때문에 이 과정을 store & forware라고 한다.
Congestion
앞서 store & forward에 대해 설명했다. 이 때 router가 destination으로 보내는 속도보다 router가 받는 속도가 더 빠르면 queueing delay가 발생한다. router는 link를 쓸 수 있을 때까지 packet을 buffer에서 대기시키기 때문이다.
이 때, buffer 크기를 초과하는 입력이 오게 되면 buffer 밖으로 데이터가 넘치고, 그 결과 packet loss가 발생한다.
queueing delay가 심해서 packet loss가 계속 발생하는 상황을 congestion이라 한다.
Packet Swiching vs Circuit Switching
대부분의 network application은 idle한 상태가 많기 때문에 packet switching이 훨씬 많은 사용자를 수용할 수 있다. 즉, reosurce share가 효율적이다.
circuit switching의 경우 call setup이 필요하기 때문에 모든 연결 과정에서 network overhead가 발생한다. 반면 그러나 packet switching의 경우 resource를 예약하지 않기 때문에 이러한 overhead가 발생하지 않지만 queueing delay가 발생하고, 더 악화되면 congestion이 발생하기도 한다. 또한 packet switching은 delay를 보장하지 않는다는 단점도 있다.
이를 해결하기 위해 packet switching을 circuit switching처럼 사용하기도 한다.
Network Core
앞서 network core는 본질적으로는 router와 switch들의 연결로 이루어져 있으며, source부터 destination까지 application message를 전달하는 것에 목표를 둔다고 했다.
이를 수행하기 위해서는 모든 access network를 연결하는 하나의 큰 net이 있어야 한다. 이를 어떻게 구현할까? access network들끼리 서로 연결하는 방식을 사용하면 O(n$^2$)만큼의 연결이 필요하기 때문에 너무 비효율적이다.
ISP, Internet Service Provider
ISP는 인터넷에 접속하는 수단을 제공하는 주체이다. ISP의 모든 router들은 서로 연결되어 있기에 ISP의 router에 하나라도 연결되어 있는 경우 해당 ISP에 연결된 모든 access network와 통신할 수 있다.
실제로는 하나의 ISP가 전 세계를 다 cover할 수 없기 때문에 여러 개의 ISP가 있다. 이 경우 ISP끼리는 통신할 수 없다는 문제점이 생기는데, 이를 해결하기 위해 ISP들끼리 link를 만들며, 이를 peering link라고 한다.
IXP, Internet eXchange Point
peer link 이외에도 IXP를 통해 ISP끼리 연결되기도 한다. IXP는 ISP들의 연결을 중개한다.
Regional Net
앞에서는 ISP가 모든 access net에 연결된다고 했다. 그러나 아무리 ISP가 거대해도 세상의 모든 지역을 cover할 수는 없다. 때문에 regional ISP가 작은 지역을 연결하고 ISP들끼리 hierarchy를 만들어 서로 연결하는 방식을 취한다.
ISP Hierarchy
Tier 1 ISP는 서로 다 연결되어 있고, 가장 큰 ISP를 의미한다.
PoP, Point of Presence는 regional ISP의 access network group을 의미하며, 여러 종류의 link를 가진다.
- 사용자들과 직접 연결되는 link
- ISP와 연결되는 link
- 같은 ISP의 router와 연결되는 link
access network와 연결된 ISP인 PoP는 일반적으로 제일 낮은 hierarchy를 가지며, 그 상위에 regional ISP나 IXP에 연결되어 있다.
- settlement free
이 때 가까운 ISP들끼리 연결할 때, 무조건 상위의 ISP를 거쳐 연결되어야하냐? 그건 또 아니다. ISP들끼리 통신을 할 때 상위 ISP를 거치면 traffic과 cost가 발생하기 때문에, 이를 줄이기 위해 같은 level의 ISP들끼리 직접 link를 만드는 것을 settlement-free라고 한다.
- multi home
자신의 바로 위에 있는 higher ISP에 연결하는 link가 2개 이상인 경우를 multi home이라고 한다. 이 경우 상위에 있는 ISP가 제대로 작동하지 않더라도 다른 ISP를 거쳐 인터넷과 연결된다.
Content Provider Network
google이나 facebook같이 매우 방대한 data를 가지는 경우 내부 datacenter가 세계 곳곳에 위치해 있다. 이 경우 data 사용량이 많아 ISP에게 지불할 돈이 너무 많아지는데, 이를 줄이기 위해 내부적으로 network를 만들며, 이를 Content Provider Network라고 한다. 이 때 일부 지역의 사용자들이 직접 연결할 수도 있다.
그러나 Content Provider Network는 나머지로의 연결을 보장하지 않기 때문에 Tier 1 ISP와 연결되어 있어야 한다.
Content Provider Network는 ISP에 100% 의존하지 않고, 필요한 만큼 사용해서 cost를 아끼고, 자신의 service를 관리하기 때문에 더 좋은 품질의 network를 제공한다.
Network Metric - Delay, Loss, Throughput
network에서 중요하게 생각하는 수치는 크게 3가지가 있다. delay, loss, throughput이 그것이다.
Delay
바로 앞의 packet switching을 설명할 때 queueing delay에 대해 설명했다. 여기서는 이를 포함한 다른 delay들을 설명한다.
delay는 크게 4종류가 있으며, network delay d$_\text{nodal}$ = d$_\text{process}$ + d$_\text{queueing}$ + d$_\text{transmission}$ + d$_\text{propagation}$으로 표현한다. packet을 전송할 때 processing delay - queueing delay - transmission delay - propagation delay 순서로 delay가 발생한다.
d$_\text{process}$ : process delay
nodal processing 과정에서 발생하는 delay로, packet을 받았을 때 bit error check, output link를 결정할 때 걸리는 시간이다. 사실상 processing 처리 시간이므로 대부분 값이 고정적이다.
d$_\text{queueing}$ : queueing delay
앞에서 설명한 내용으로, packet이 buffer에서 기다릴 때 발생하는 지연 시간이다. network의 congestion 상태에 따라 달라지므로 가변적이다.
d$_\text{transmission}$ : transmission delay
router 등의 중계 기기에서 packet을 link로 보낼 때 걸리는 시간으로, [packet size / bandwidth]로 결정한다. packet size와 bandwidth는 거의 일정하기 때문에 transmission delay 또한 거의 일정하다.
d$_\text{propagation}$ : propagation delay
link에서 정보가 이동할 때 걸리는 시간으로, [link의 전송 속도 / link 길이]로 표현한다.
Traffic Intensity
- R : link bandwidth
- L : packet length
- a : average packet arrival rate
이 때 La는 단위 시간당 들어오는 traffic의 양을 의미하며, 이를 R로 나눈 값인 La/R은 traffic과 bandwidth의 비율을 의미하며 이를 traffic intensity라고 한다.
- La/R ~ 0 → 나가는 속도가 매우 빠르다.
- La/R ~ 1 → 나가는 속도와 들어오는 속도가 비슷하다.
- La/R > 1 → 대기 시간이 매우 길어지므로 buffer가 계속 커진다.
a가 average이기 때문에 실제로는 La/R이 0.7정도만 되어도 delay가 점점 커진다. 따라서 대부분은 traffic intensity가 0.7~0.8정도 되면 delay가 매우 커질 것이라고 본다.
Loss
앞에서도 언급했듯 buffer에 너무 많은 packet이 수신되면 buffer에서 넘치는 packet들을 버리는데, 이를 packet loss라고 한다. 이 때 버린 packet은 client가 다시 전송해야 하기 때문에 user 입장에서는 delay가 커지고, network 입장에서는 resource를 낭비한 것이 된다.
Throughput
network에서 throughput은 단위 시간당 source부터 destination까지 옮긴 traffic의 양을 의미한다.
실제 network에서 많은 link를 타고 source에서 destination으로 traffic이 옮겨 가는데, 이 때 bottleneck link에 의해 전체 throughput이 결정된다. bottleneck link는 end to end(처음부터 끝까지)에서 bandwidth가 제일 작은 link를 의미한다.
일반적으로 network cord의 bandwidth는 매우 크기 때문에 여기서는 bottleneck link가 잘 생기지 않는다. 보통 bottleneck link는 [internet core - server] 또는 [internet core - client]에 있는 link에서 발생한다.
Protocol Layer
Internet Protocol Stack
OSI 7계층과 달리 internet protocol은 위와 같이 5계층으로 이루어진다. 각각이 하는 일은 다음과 같다.
- application layer : network application을 지원하며, network application에서 발생한 모든 정보를 바탕으로 user message를 생성한다. 이후 전송은 transportation layer에 맡긴다.
- web을 지원하는 HTTP, mail을 지원하는 SMTP, file을 지원하는 FTP 등이 있다.
- transportation layer : source process에서 destination process로 data를 전송하는 역할을 한다. 이를 위해 host-host delivery가 필요한데, 이는 network layer에 맡긴다.
- TCP, UDP 등이 있다.
- network layer : routing을 통해 host-host delivery를 수행한다. 이를 위해 하나의 router에서 다음 router에서 packet을 전달해야 하는데, 이는 link layer에 맡긴다.
- IP, routing protocol 등을 사용한다.
- link layer : 하나의 경로를 건너가기 위해 bit를 전달하는 역할을 수행한다. 실제 전송을 physical layer에게 맡긴다.
- Ethernet, WiFi, PPP 등이 있다.
- physical layer : 실제 bit를 wire에 보내는 역할을 수행한다.
이렇듯 internet protocol은 5개의 layer로 나뉘어져 있으며, 상위의 layer는 아래에 있는 layer를 사용해 자신의 목적을 달성한다.
OSI 7계층에는 application layer 아래에 presentation layer, session layer가 더 붙어 있다.
- presentation layer : encryption, compression 등을 풀어 application이 data를 읽을 수 있게 변환한다.
- session layer : synchronization, checkpointing, data 복구를 담당한다.
internet protocol stack은 이러한 부분이 필요하지 않아 생략한다. 그러나 application에서 이러한 layer들이 필요하면 붙여 쓴다.
layering의 사용 이유
protocol이 너무 복잡하기 때문에 layer를 나눠서 module화를 꾀한다.
장점으로는 복잡한 protocol system을 쉽게 정의할 수 있고, 유지보수나 update가 용이하다. 반면 단점으로는 layer들끼리 역할이 겹칠 수도 있고, layer들의 communication으로 인한 overhead가 발생한다. 때문에 layer를 사용하는 것이 optimal network는 아니지만 성능으로 인한 단점보다 장점이 훨씬 크기 때문에 layering을 한다.
PDU : Protocol Data Unit
각 protocol layer에서 만드는 unit을 의미한다.
- application layer - message.
- transport layer - segment. message에 segment header를 붙여 segment를 만든다.
- network layer - datagram. segment에 datagram header를 붙여 datagram을 만든다.
- link layer - frame. datagram에 frame header를 붙여 frame을 만든다.
예시: Encapsulation
host의 경우 5개의 layer가 있지만 switch는 2개, router는 3개의 layer만 있다.
transport layer는 process-process delivery이므로 switch나 router에서는 필요 없다. application layer는 application message를 생성하므로, 마찬가지로 switch나 router에서는 필요 없다. 반면 network layer는 routing 단계로, router에는 필요하지만 switch에는 필요 없다. link layer, physical layer는 모든 단계에서 필요하다.
그럼 이제 source host에서 만든 message가 어떤 과정으로 layer를 거쳐 destination에 도착하는지 위 그림을 예시로 살펴보자.
- source host에서 발송한다.
- source application layer가 message를 생성하고, transport layer에게 맡긴다.
- transport layer는 message로 segment를 만들고 network layer에게 맡긴다.
- network layer는 segment로 datagram을 만들고 link layer에게 맡긴다.
- link layer는 datagram으로 frame을 만들고 physical layer에게 맡긴다.
- physical layer는 frame을 wire에 발송한다.
- switch가 packet을 받고, 해석하고, 발송한다.
- physical layer가 frame을 받고 link layer에게 준다.
- link layer는 frame header를 떼어 datagram을 추출하고, 다시 frame을 만들어 physical layer에게 맡긴다.
- physical layer는 frame을 wire에 발송한다.
- router가 packet을 받고, 해석하고, 발송한다.
- physical layer가 frame을 받고 link layer에게 준다.
- link layer는 frame header를 떼어 datagram을 추출하고 network layer에게 준다.
- network layer는 datagram을 분석하고, 다시 datagram으로 만들어 link layer에게 준다.
- link layer는 datagram으로 frame을 만들고 physical layer에게 맡긴다.
- physical layer는 frame을 wire에 발송한다.
- destination host가 받는다.
- physical layer가 frame을 받고 link layer에게 준다.
- link layer는 frame header를 떼어 datagram을 추출하고 network layer로 준다.
- network layer는 datagram header를 떼어 segment를 추출하고 transport layer로 준다.
- transport layer는 segment header를 떼어 message를 추출하고 application layer로 준다.
- application layer가 message를 받는다.
복잡하게 서술했지만, 결국 모든 layer가 하는 역할은 간단하다.
- 보낼 때는 PDU에 맞게 header를 붙여 packet을 변환하고 아래 layer에게 준다.
- 받을 때는 PDU에 맞게 header를 떼어 packet data를 추출하고 위 layer에게 준다.
Security
초기 형태의 인터넷은 검증된 사람만 사용할 수 있었고, 보안이 필요하지 않았다. 때문에 protocol에 보안 관련 요소가 없었다. 그러나 확장되고 발전하면서 모든 사람이 쓰게 되었고, 보안 관련 요소를 protocol에 넣어야 했다.
network security는 아래 3가지 종류가 있다.
- 공격 종류를 식별
- 공격을 어떻게 막는지
- 공격에 면역인 system을 만들기
여기서는 어떤 공격 종류가 있는지만 간단히 살펴본다.
malware
malware는 악성코드를 총칭하는 단어이다. virus, worm, spyware, botnet 등이 있다.
- virus : 받고 실행해야 작동하는 악성 코드
- worm : 다운로드 받기만 하면 알아서 작동하는 악성 코드
- spyware : keystrok 등 컴퓨터의 작동 기록을 collection site(다른 곳)으로 빼돌리는 악성 코드
- botnet : spam이나 DDoS에서 사용되는 computer의 집합.
Dos, Denial of Service
DoS는 서버에 필요없는 traffic을 계속 보내 일반적인 사용자가 응답을 받을 수 없게 만드는 공격 기법이다. 아래와 같은 단계로 이루어진다.
- target을 설정한다.
- target 주변 PC를 botnet으로 만든다.
- botnet이 host에게 packet을 계속 보낸다.
sniffing
sniffing은 다른 PC에서 보내는 traffic을 훔쳐보는 공격 기법이며, WiFi나 cable의 경우 shared net이며, 이와 같이 같은 access network를 공유하는 network에서 발생한다.
모든 network end system에는 NIC, Network Interface Card가 있는데, 이를 사용해 end system을 식별한다. 또한 link layer에서는 frame의 destination address가 NIC와 일치하거나, broadcast로 온 packet만 network layer로 packet을 올려보낸다.(아니면 버린다.) 즉, 자신에게 왔거나 broadcast로 발송된 packet만 받는다는 것이다.
그러나 promiscuous mode로 NIC를 설정할 경우 모든 packet을 훔쳐볼 수 있게 된다. 다른 host가 보낸 message를 훔쳐볼 수 있게 되는 것이다.
위 예시에서는 B가 보낸 packet을 C가 sniffing한다.
spoofing
spoofing은 자신이 다른 PC처럼 행동하는 것을 의미한다. source address를 변조하는 방식으로 공격한다.
위 예시에서는 C가 B처럼 행동한다.
참고: Cerf and Kahn's Internetworking Principles
초기 internet을 정의할 때 사용했던 principle들이지만 현재까지도 internet architecture를 정의할 때 사용한다.
- minimalism, autonomy : 각 net들은 독립성을 가져야 하며, 이들을 연결할 때는 변화를 최소화해야 한다.
- best effort service model : net들끼리 packet을 중계할 때는 gurantee하지 않고, 최선을 다해야 한다.
- stateless router : router는 packet을 저장하지 않아야 한다.
- decentralized control : internet은 중심이 모든 것을 control하지 않는다.
잘못된 내용이나 오탈자에 대한 지적, 질문 등은 언제나 환영합니다.
'CS > Network' 카테고리의 다른 글
[Network] 하향식 접근 네트워크 - 2. Application Layer - (2) HTTP (0) | 2023.07.27 |
---|---|
[Network] 하향식 접근 네트워크 - 2. Application Layer - (1) Application Principle (0) | 2023.07.27 |
[Network] 1%의 네트워크 - 6. 마무리 : Web Server Response (0) | 2023.07.24 |
[Network] 1%의 네트워크 - 5. Firewall, Proxy, Load Balance (0) | 2023.07.24 |
[Network] 1%의 네트워크 - 4. 인터넷 내부 (0) | 2023.07.24 |