인터넷이란 무엇인가?
구성요소로 본 인터넷
인터넷은 컴퓨팅 장치를 연결하는 컴퓨터 네트워크이다.
컴퓨터 네트워크(computer network)는 이제 호스트 혹은 종단 시스템이라고 부른다.
종단 시스템은 통신 링크(communication llink)와 패킷 스위치(packet switch)의 네트워크로 연결된다.
통신 링크
동축케이블, 구리선, 광케이블, 라디오 스펙트럼을 포함한 다양한 물리 매체로 구성된다.
이때 각각의 링크들은 다양한 전송률(transmission rate, 링크 대역폭)을 이용하여 데이터를 전송하며, 전송률은 초당 비트 수를 의미하는 bps(bit per second)단위를 사용한다.
패킷(packet)
한 종단 시스템이 다른 종단 시스템으로 보낼 데이터를 가지고 있을 때, 송신 종단 시스템은 그 데이터를 세그먼트(sagment)로 나누고 각 세그먼트에 헤더(gader)를 붙인다.이렇게 만들어진 정보 패키지는 컴퓨터 네트워크에서 패킷(packet)이라고 부른다.
패킷 교환기(packet switch)
입력 통신 링크의 하나로 도착하는 패킷을 받아서 출력 통신 링크의 하나로 그 패킷을 전달한다.
종류로는 라우터(router)와 링크 계층 스위치(link-layer-switch)등이 있다. 두 형태의 스위치는 최종 목적지 방향으로 패킷을 전달한다.
링크 계층 스위치는 보통 액세스 네트워크에서 사용되고, 라우터는 네트워크 코어에서 사용된다.
네트워크상의 경로(route 혹은 path)
패킷이 송신 종단 시스템에서 수신 종단 시스템에 도달하는 동안 거쳐 온 일련의 통신 링크와 패킷 스위치들
ISP(Internet Service Provider)
각 ISP는 패킷 스위치와 통신 링크로 이루어진 네트워크이다.
인터넷은 종단 시스템을 서로 연결하는 것이므로 종단 시스템에 접속을 제공하는 ISP들도 서로 연결되어야만 한다.
TCP/IP
종단 시스템, 패킷 스위치, 인터넷의 다른 구성요소는 인터넷에서 정보 송수신을 제어하는 여러 프로토콜을 수행한다.
TCP(Transmission COntrol Protocol)와 IP(Internet Protocol)는 인터넷에서 가장 중요한 프로토콜이다.
IP 프로토콜은 라우터와 종단 시스템 사이에서 송수신되는 패킷 포맷을 기술한다.
인터넷 표준
- RFC(Request for comments) : 하나하나가 프로토콜 하나에 맵핑됨
- IETF(Internet Engineering Task Force) : 인터넷 표준을 만들어 배포하는 기관
서비스 측면에서 본 인터넷
인터넷은 애플리케이션에 서비스를 제공하는 인프라 구조이다.
응용 프로그램 실행에 필요한 프로그램 인터페이스를 제공
- 인터넷 접속 후 데이터 송수신 채널 제공
- 서비스 차별화하는 선택 제공
프로토콜이란 무엇인가?
통신 개체들 간에 교환되는 메시지 형식과 순서 그리고 메시지 송수신 과정에서 연관된 이벤트 처리 등을 정의한다.
네트워크의 가장자리(network edge)
종단시스템(hosts)은 클라이언트(clients)와 서버(servers)로 구분된다. 오늘날의 서버들은 커다란 데이터 센터(data center) 내에 있다.
접속 네트워크와 물리 매체 : 유선(wired), 무선(wireless) 통신 매체
네트워크 코어 : 상호 연결된 라우터, 네트워크의 네트워크
라우터 : 데이터가 흘러가다 방향이 바뀌는 부분
접속 네트워크
종단 시스템과 에지 라우터를 어떻게 연결할 것인가?
가정의 접속 네트워크, 기관의 접속 네트워크, 무선 접속 네트워크등이 꼽힌다.
가정 접속 : DSL, 케이블
오늘날 두 가지 가장 널리 보급된 광대역 가정 접속 유형은 DSL(Digital sub-scriber lin)과 케이블이다.
디지털 가입 회선(DSL)
집과 집중국 DSLAM까지는 기존의 전화선 사용
- 음성 신호와 데이터 신호를 주파수 대역으로 분리/혼합
- 음성 신호(0~4KHz), 데이터 신호(4~50KHz , 50KHz~1MHz)
DSL 표준은
최대 2.5Mbps 수준의 업스트림 전송율(보통 1Mbps 이하)
최대 24Mbps 수준의 다운스트림 전송율(보통 10Mbps 이하)로 정의 한다.
케이블 네트워크
DSL이 텔코의 기존 로컬 전화 기반구조를 이용하는 반면에 케이블 인터넷 접속은 케이블 TV 회사의 기존 케이블 TV 기반구조를 이용한다.
주파수 분할 다중화(frequency division multiplexing) : 통신 시에 다른 주파수 대역별로 구분하고, 각 대역을 다른 전송 채널로 할당
HFC(Hybrid Fiber Coax)
케이블 또는 광케이블 네트워크를 통해 ISP 라우터에 연결
가전은 케이블 헤드엔드까지 접속 네트워크 공유, 단, DSL은 집중국까지 전용 접속 네트워크 사용
비대칭 전송 속도 : 다운스트림 전송율 최대 30Mbps, 업스트림 전송율 최대 2Mbps
기관 접속 네트워크(이더넷, Ethernet)
LAN (local area network)은 일반적으로 종단 시스템을 가장자리 라우터에 연결하기 위해 사용된다.
이더넷 기술이 기업, 대학, 홈 네트워크에서 가장 널리 사용되는 접속 기술이다.
이더넷 접속에서 사용자들은 보통 이더넷 스위치에 100 Mbps 혹은 1Gbps로 접속하고, 서버는 1 Gbps 혹은 10 Gbps로 접속한다.
종단 시스템은 이더넷 스위치에 1:1로 연결됨
무선 접속 네트워크
종단 시스템은 무선 접속 네트워크를 공유하고, 무선 공유기(Aceess Point)를 통해 라우터와 연결
Wireless LANs | wide-area wireless acceess |
within building (100 ft.) 802.11 b/g/n (WiFi): 11, 54, 450Mbps transmission rate |
provided by telco (cellular) operator, 10's km between 1 and 10 Mpbs 3G, 4G, 5G : LTE |
호스트 : 데이터 패킷을 전송
호스트 전송 단계
- 응용 프로그램으로부터 전송 메시지 수신
- 메시지를 길이가 L인 패킷 단위로 분할
- 전송율 R인 접속 네트워크로 패킷 전송
- 회선 전송율 또는 회선 대역폭
물리 매체
비트 : 송수신 장치 간에 주고받는 데이터 전송 단위
물리 매체 : 송수신 장치를 연결하는 매체
- 유도 매체 : 구리,광 또는 동축 케이블과 같이 견고한 매체를 통해 전달
- 비유도 매체 : 무선 또는 전파를 통해 자유롭게 신호 전달
유도 매체의 종류
꼬임쌍동선(Twist Pair)
절연된 2개의 동선이 나선형으로 꼬여 있음
- Category 5 : 100 Mbps, 1 Gbps Ethernet
- Category 6 : 10Gbps
동축 케이블
동심원 형태의 두 개의 구리선, 양방향 전송
- 브로드밴드 : 케이블 상에 다중 채널, HFC(hybrid fiber coax, 광동축 혼합망)
광케이블
비트 단위의 광 펄스를 광케이블을 통해 전달
- 고속 동작. 10~100 Gpbs 전송율
- 낮은 에러율 : 멀리 떨어진 수신 장치, 전자기파 간섭에 강함
비유도 매체의 종류
라디오 채널
전자기 스펙트럼을 통해 신호 전달, 물리적인 매체 불필요, 양방향 전달, 전파 환경 효과(신호 반사, 물체에 의한 방해, 신호 간섭)
유형
- 지상 마이크로파 : 최대 45 Mbps 채널
- LAN(일명 WiFi) : 54 Mbps
- 광대역(일명 cellular)
- 4G cellular : ~ 10 Mbps
- 5G cellular : ~ 20 Mbps
- 위성
- 최대 45Mbps 채널
- 종단간 270 msec 지연
- 정지 및 저궤도 위성
네트워크 코어
상호 연결된 라우터들의 연결망
메시지 전달 방식으로 패킷 교환과 회선 교환을 한다.
패킷 | 회선 |
인터넷 | 전화기 |
A -> B로 보내고 싶은 메시지를 잘게 잘라 분산해 전송 | A -> B로 원하는것을 통째로 전송 |
패킷 교환
송신 종단 시스템에서 목적지 종단 시스템으로 메시지를 보내기 위해, 송신 종단 시스템(호스트)는 응용 계층의 메시지를 패킷 단위로 분할한다.
발신지에서 목적지로 가는 경로에 따라 순차적으로 라우터간에 전송된다.
각 패킷은 링크의 최대 전송 속도와 같은 속도로 각각의 통신 링크상에서 전달된다.
저장 후 전달
대부분의 패킷 스위치는 저장 후 전달 전송(store and forward transmission)방식을 이용한다.
저장 후 전달 전송방식은 전체 패킷은 다음 링크로 전달하기 전에 해당 라우터에 모두 저장되어야 한다.
L비트 패킷을 R bps의 매체로 전송할 때 L/R초(지연시간)가 소요된다.
송신 시트템에서 라우터로 라우터에서 수신 시스템까지 각각 L/R시간이 걸리기에 종단간(전체) 지연시간은 2L/R이 걸린다. 이 기간에 라우터는 전체 패킷을 전송하였고 수신 시스템이 전채 패킷을 수신한다.
큐잉 지연과 패킷 손실
각 패킷 스위치는 접속된 여러 개의 링크를 갖고 있다. 각 링크에 대해 패킷 스위치는 출력 버퍼(출력 큐)를 갖고 있으며, 그 링크로 송신하려고 하는 패킷을 저장하고 있다.
도착하는 패킷이 한 링크로 전송될 필요가 있는데 그 링크가 다른 패킷을 전송하고 있다면, 도착하는 패킷은 출력 버퍼에서 대기해야 하여 패킷은 출력 버퍼에서 큐잉 지연을 겪게 된다.(패킷은 큐에 들어가서 매체를 통해 전송되길 기다림)
버퍼 공간의 크기가 유한하기 떄문에 도착하는 패킷은 버퍼가 전송을 위해 대기 중인 다른 패킷들로 꽉 차 있는 경우를 당할 수 있는데, 이 경우 패킷 손실(packet loss)이 발생한다. (라우터의 큐 메모리가 부족할 경우 패킷은 강제 삭제됨)
전달 테이블과 라우팅 프로토콜
라우터는 어떻게 그 패킷을 어느 링크로 전달해야 하는지를 결정하는가?
인터넷에서 모든 종단 시스템은 IP 주소를 갖는데, 소스 종단 시스템이 패킷을 목적지 종단 시스템으로 보내고자 할 때, 소스는 패킷의 헤더에 목적지의 IP 주소를 포함한다.
패킷이 네트워크의 한 라우터에 도착하면, 라우터는 패킷의 목적지 주소의 일부를 조사하고 그 패킷을 이웃 라우터로 전달한다. 보다 구체적으로 각 라우터는 목적지 주소를 라우터의 출력 링크로 맵핑하는 전달 테이블(forwarding table)을 갖고, 패킷이 라우터에 도착하면, 라우터는 올바른 출력 링크를 찾기 위해 주소를 조사하고 이 목적지 주소를 이용하여 전달 테이블을 검색한 후, 라우터는 그 패킷을 출력 링크로 보낸다.
네트워크 코어의 핵심 기능
- 라우팅 : 패킷이 발신지로부터 목적지까지 진행하는 전체 경로 결정
- 라우팅 알고리즘
- 포워딩 : 라우터의 입력단으로 들어온 패킷을 라우팅 테이블 내용 기준으로 적절한 출력단으로 전송됨
- 전체적 지도를 그리고 테이블을 만든다.
- 라우터 테이블을 기반으로 넘기는 것
회선 교환
링크와 스위치의 네트워크를 통해 데이터를 이동시키는 방식에는 회선 교환(circuit switching)과 패킷 교환(packet switching)이라는 두 가지 기본 방식이 있다.
회선교환 네트워크에서 종단 시스템 간에 통신을 제공하기 위해 경로상에 필요한 자원(버퍼, 링크 전송률)은 통신 세션(session) 동안에 확보 또는 예약된다. 패킷 교환 네트워크에서는 이들 자원을 예약하지 않는다.
예를 들어 4개의 회선 스위치가 각 4개의 링크에 연결되어 있다고 가정한다.
호스트는 스위치 중 하나에 직접 연결된다. 두 호스트가 통신하고 싶을 때 네트워크는 두 호스트 사이에 지정된 종단간 연결을 설정한다.라우터 간에 사용할 회선을 라우터 간 협의를 통해 결정한다.
전용 회선 : 공유 안된다. 단말 간 전용 회선사용으로 성능 보장
데이터 전송되지 않을 경우 회선 사용 없음
회선 교환 네트워크에서의 다중화
링크 내 한 회선은 주파수 분달 다중화(FDM, Frequency division MUltiplexing) 혹은 시분할 다중화(TDM,Time Division Multiplexing)로 구현된다.
FDM에서 링크를 통해 설정된 연결은 그 링크의 주파수 스펙트럼을 공유한다. 마치 FM 라디오 방송처럼 말이다.
TDM 링크의 경우는 시간을 일정 주기의 프레임으로 구분하고 각 프레임은 고정된 수의 시간 슬롯으로 나뉜다. 네트워크가 링크를 통해 하나의 연결을 설정할 때. 네트워크는 모든 프레임에서 시간 슬롯 1개를 그 연결에 할당한다.
패킷 교환 대 회선 교환
회선 교환 대비 패킷 교환은 보다 많은 사용자가 네트워크를 사용할 수 있다.
예를 들어 사용자가 1 Mbps 링크를 공유한다고 가정하며, 각 사용자는 활동 시간(100 kbps의 일정 속도로 데이터를 생산할 때)과 비활동 시간(데이터를 생산하지 않을 때)을 반복한다고 하자. 그리고 사용자는 전체 시간에서 10%만 활동한다고 하자.
회선 교환의 경우 100 kbps가 항상 각각의 사용자에게 예약되어야 하므로 동시에 10명(1 Mpbs/100 kpbs)만 지원할 수 있다.
패킷 교환의 경우, 한 특정 사용자가 활동하고 있을 활률은 0.1(10%)이다. 만약 35명의 사용자가 있다면. 11명 이상의 사용자가 동시에 활동할 확률은 0.0004(0.04%)이다.
10명 이상의 동시 사용자가 있을 활률은 매우 작으므로 패킷 교환은 거의 항상 회선 교환과 대등한 지연 성ㅇ능을 가지면서도 사용자 수에 있어서 거의 3배 이상을 허용하기 때문이다.
그럼 패킷 교환이 절대적으로 우수한가?
물론 장단점이 있다. 패킷 교환은 자원 공유를 할 수 있고. 회선 연결 등의 오버헤드 없어 단순한 것. 즉,인터넷 접속과 같은 데이터 전송에 최적화 되어있다.
하지만 과도한 혼잡 발생이 일어날 수 있는데 그렇게 되면 패킷 지연과 손실이 일어난다. 그것을 막기위해 안전한 데이터 전송과 혼잡 제어를 위한 프로토콜이 필요하다.
네트워크의 네트워크
종단 시스템은 ISP(Internet Service Provider)에서 제공하는 접속 네트워크를 통해 인터넷에 연결된다.
접속 ISP는 텔코 혹은 케이블 회사일 필요는 없다.예를 들면 가정, 기업, 학교에 연결된 지역 ISP에 의존한다.
ISP는 서로 상호 연결이 되어야 모든 호스트 간에 패킷 전송이 가능하다.
그러나 종단 사용자들과 콘텐츠 제공자들을 접속 ISP로 연결하는 것은 인터넷을 구성하는 수십억 개의 종단 시스템을 연결하는 퍼즐의 해결방법 중 극히 일부분에 해당된다. 이 퍼즐을 완전히 풀기 위해서는 접속 ISP들이 서로 연결되어야만한다. 이를 위해서 네트워크의 네트워크가 탄생하게 되었다.
인터넷을 형성하고 있는 네트워크의 네트워크는 매우 복잡한 구조로 진화되었는데, 이러한 진화의 많은 부분이 성능적인 고려보다도 경제적 그리고 국가의 정책에 의해 주도되었다.
모든 종단 시스템이 서로에게 패킷을 보낼 수 있도록 접속 ISP를 연결하는 것이 중요한 목표이다.
한 가지 간단한 방법은 각 접속 ISP를 직접 서로 다른 ISP와 연결하는 것이다. 그러나 이러한 그물망 설계는 O(N^2)복잡도가 필요하므로 효율적이지 않다.
한 가지 옵션은 각 지역ISP는 하나의 전역 ISP와 연결하는 방법이다. 지역 ISP는 전역 ISP와 서비스 계약 체결을 한다.
근데 만약 한 개의 전역 ISP가 아닌 여러 개의 전역 ISP가 존재한다면, 여러개의 전역 ISP 간에 상호 연결을 하는 것이다.
각 전역 ISP는 IXP(Internet exchange point)로 연결을 한다.
만약 인터넷 계층구조의 같은 계층에 있는 가까운 ISP들이 있다면 이들 간에 송수신되는 모든 트래픽을 상위 계층 ISP를 통하지 않고 직접 송수신할 수 있도록 이들은 자신들의 네트워크를ㄹ 서로 직접 연결할 수 있다. 이렇게 하면 트래픽을 줄이며, 요금 또한 낮출 수 있다.
어떤 ISP들은 인상적인 글로벌 서비스 영역을 가지며 직접 많은 접속 ISP들과 연결하고 있지만. 전 세계의 모든 도시에 존재하는 ISP는 없다. 대신에 어느 주어진 지역에서 그 지역에 있는 접속 ISP들이 연결하는 지역(regional)ISP가 있다. 지역 네트워크가 있다면 그 네트워크를 전역 ISP에 연결한다.
여기에 고객 특화된 서비스 제공을 위해 Google, Microsoft, Akamai등이 개별적인 content provider network를 운영한다면 어떻게 될까?
구글 데이터 센터는 모두 구글의 사설 TCP/IP 네트워크를 통해 연결되어 있다. 이 네트워크는 전 세계를 연결하며 공중 인터넷과는 분리되어 있다. 중요한 것은 구글 사설 네트워크는 구글 서버로 오가는 트래픽만을 전달한다.비용을 줄이기 위해서이다.
하위 계층 ISP들은 상위 계층 ISP들과 ㅁ연결하고 상위 계층 ISP들은 서로 연결한다. 사용자와 콘텐츠 제공자들은 하위 계층 ISP들의 고객이고 하위 계층 ISP들은 상위 계층 ISP들의 고객이다. 최근에, 주요 코텐츠 제공자들도 자신의 네트워크를 구축하였고 가능한 곳에서 하위 계층 ISP들과 직접 연결한다.
- Tier 1(1계층) ISP : Sprint, AT&T, NTT 등의 국제적 접속 서비스 제공 / 해저케이블같은거 까는곳
- content provider network : Google과 같이 tier1, 지역적 ISP를 우회하여 자신만의 데이터 네트워크 연결
패킷 교환 네트워크에서의 지연, 손실과 처리율
컴퓨터 네트워크는 반드시 두 종단 시스템 간에 처리율(전달될 수 있는 초당 데이터의 양)을 제한하여 종단 시스템 간에 지연을 야기하며 실제로 패킷을 잃어버리기도 한다. 컴퓨터 네트워크가 이러한 문제를 갖고 있기 때문에 이러한 문제를 해결해야 한다.
패킷 교환 네트워크에서의 지연 개요
패킷이 경로를 따라 한 노드에서 다음 노드로 전달되므로, 그 패킷은 경로상의 각 노드에서 다양한 지연을 겪게 된다.
이들 지연에서 중요한 것으로는 노드 처리 지연(nodal processing delay), 큐잉 지연(queuing delay), 전송 지연(transmission delay), 전파 지연(propagation delay)를 들 수 있으며, 이 지연들이 쌓여서 전체 노드 지연(total nodal delay)을 일으킨다.
노드 처리 지연
패킷 헤더를 조사하고 그 패킷을 어디로 보낼지를 결정하는 시간.
패킷의 비트를 전송하면서 발생하는 패킷의 비트 수준 오류를 조사하는 데 필요한 시간등
일반적으로 msec 미만이다.
큐잉 지연
출력 링크에서 전송할때까지 대기 시간. 라우터의 혼잡도 수준에 의존
전송 지연
L(packet length) / R(link bandwidth ,bps)
전파 지연
D(distance)/s(second)
링크의 처음부터 라우터 B까지의 전파에 필요한 시간. 광선이면 광속이기에 크게 고려할 요소는 아니다.
큐잉 지연과 패킷 손실
큐잉 지연은 패킷마다 다른 수 있다. 예를 들어 10개의 패킷이 동시에 비어 있는 큐에 도착한다면, 전송된 첫 패킷은 큐잉 지연을 겪지 않지만 마지막으로 전송되는 패킷은 상당히 많은 큐잉 지연을 겪을 것이다.
따라서 큐잉 지연의 특성을 묘사할 때, 평균 큐잉 지연, 큐잉 지연의 분산, 큐잉 지연이 어느 특정 값을 넘을 확률 같은 통계 측정을 일반적으로 이용한다.
R : 링크 대역폭(bps), L : 패킷 길이(bits), a : 평균 패킷 도착율
트래픽 강도 : La/R
La / R = 0 : 평균 큐잉 지연 미미
La / R <= 1 : 평균 큐잉 지연 심각
La / R > 1 : 링크 서비스 용량 초과로 평균 지연 무한대로 늘어남
패킷 손실
라우터 큐(버퍼)의 용량은 유한한 용량을 가진다. 큐 용량이 유한하므로 가특 찬 큐에 패킷이 도착하면 라우터는 그 패킷을 버린다.
손실된 패킷은 이전 노드 또는 발신지 시스템에서 재전송될 수 있다.
그럼 실제 인터넷의 경로와 지연은 어떤가?
Traceroute 프로그램 : 송신지에서 목적지까지 진행하는 경로 상에서 발생하는 지연 측정
모든 경로 상의 라우터 i에 대하여
- 목적지로 가는 경로 상의 라우터 i를 향해 3개의 패킷을 순차 전송
- 라우터 i는 송신지로 패킷 회신
- 송신지는 전송부터 수신까지의 소요 시간 측정
종단간 지연
지금까지 노드 지연, 즉 한 라우터에서의 지연에 대해 초점을 맞추었다.
이제 출발지 호스트와 목적지 호스트 사이에 N - 1개의 라우터가 있다고 가정하자.
각 라우터와 출발지 호스트의 처리 지연은 d(proc)이고 각 호스트와 출발지 호스트에서의 전송률은 R pbs이다.그리고 각 링크에서의 전파 지연은 d(prop)라고 할 때,
d(end - end) = N(d(proc) + d(trans) + d(prop))이다.
컴퓨터 네트워크에서의 처리율
전송율 : 데이터가 송신자와 수신자 간에 비트단위로 전송되는 비율(bits/ time unit)
- 순간적인 처리율(instntaneous throughput) : 특정 싯점의 전송 비율
- 평균 처리율(average throughput) : 장기간의 전송 비율
예를 고려한다. 2개의 종단 시스템, 즉 2개의 통신 링크와 라우터로 연결된 하나의 서버와 하나의 클라이언트를 보여 주고 있다. 서버로부터 클라이언트로의 파일 전송에 대한 처리율을 고려하자. Rs는 서버와 라우터 간의 링크 속도를 나타내고, Rc는 라우터와 클라이어트 간의 링크 속도를 나타낸다. 전체 네트워크로 보내지는 비트는 서버에서 클라이언트로만 보내지는 비트라고 가정하자.분명히 서버는 Rs bps보다 빠른 속도로 링크상으로 비트를 내보낼 수 없고, 라우터는 Rc bps보다 빠른 속도로 비트를 전달할 수 없다.
만약 Rs < Rc이면 서버가 배출한 비트는 라우터를 통해 올바로 "흘러갈"것이고 Rs bps의 속도로 클라이언트에 도착하여 Rs bps의 처리율을 나타낼 것이다.
반면에 Rs > Rc 이면 라우터는 자신이 수신하는 비트만큼 빠르게 그 비트들을 전달할 수 없을 것이다. 이경우 비트들은 라우터에서 Rc의 속도로 떠나게 되고, 종단간 처리율은 Rc가 되게 될 것이다.
따라서 이 간단한 2개의 링크로 구성된 네트워크의 경우, 처리율은 min[Rc, Rs], 즉 병목 링크(bottle neck link)의 전송률이 처리율이 된다.
프로토콜 계층과 서비스 모델
계층구조
프로토콜 계층화
네트워크 프로토콜의 설계에 대한 구조를 제공하기 위해, 네트워크 설계자는 프로토콜(프로토콜을 구현하는 네트워크 하드웨어와 소프트웨어)을 계층으로 조직한다.
항공 시스템 구조에서 각각의 기능이 한 계층에 속하는것처럼 각 프로토콜은 한 계층에 속한다. 우리는 다시 한 계층이 상위 계층에 제공하는 서비스에 관심을 갖고, 이것을 계층의 서비스 모델(servie model)이라고 한다.
각 계층의 역할
- 그 계층 내부에서 어떤 동작을 수행하거나,
- 직접 하위계층의 서비스를 사용한다.
복잡한 시스템 다루기
- 명확한 구조화를 통해 해당 요소를 계층별로 정의하고 상하 관계를 설정
- 계층화된 참조 모델(reference model)
- 모듈화를 통해 유지보수와 변경이 용이해 짐
- 특정 계층을 다른 계층에 영향을 주지 않고 교체가능
- 예로서, 탑승 절차를 변경하더라도 다른 시스템에 영향을 주지 않음
다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택(protocol stack)이라고 한다.
인터넷 프로토콜 스택은 5개 계층으로 물리, 링크, 네트워크, 트랜스포트, 애플리케이션 계층으로 구성된다.
먼저 애플리케이션 계층을 다루고 다음에 아래로 내려가는 탑다운(top-down approach)을 채택하고 있다.
- 응용계층(application) : 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳이다.
- 네트워크 응용 서비스 제공한다.
- 애플리케이션 계층 프로토콜은 여러 종단 시스템에 분산되어 있어서, 한 종단 시스템에 있는 애플리케이션이 다른 종단 시스템에 있는 애플리케이션과 정보 패킷(메시지)을 교환하는 데 이 프로토콜을 사용한다.
- FTP(두 종단 시스템 간의 파일 전송 제공), SMTP(전자메일 전송을 제공), HTTP(웹 문서 요청과 전송을 위해 제공)을 포함.
- 전송 계층(transport) : 프로세스 간 데이터(메시지)를 전송한다. 세크먼트(segment)라고도 한다.
- TCP(애플리케이션에게 연결지향형 서비스 제공), UDP(비연결형 서비스를 제공)
- 네트워크 계층 : 송신지에서 목적지로 데이터그램(datagram) 전송 및 라우팅
- IP 프로토콜(IP 데이터그램의 필드를 정의하며 종단 시스템과 라우터가 이 필드에 어떻게 동작하는지를 정의하는 프로토콜을 갖고 있다.), routing protocols(인터넷 네트워크 계층은 출발지와 목적지 사이에 데이터그램이 이동하는 경로를 결정한다.)을 포함
- 링크 계층 : 이웃한 네트워크 요소 간에 데이터 전송
- 각 노드에서 네트워크 계층은 데이터그램을 아래 링크 계층으로 보내고, 링크 계층은 그 데이터그램을 경로상의 다음 노드에게 전달한다. 다음 노드에서 링크 게층은 그 데이터그램을 상위 네트워크 계층으로 보낸다.
- Ethernet, 802.11(WiFi), PPP
- 물리 : 매체 상의 비트 전송
- 링크 계층의 기능이 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것이라면, 물리 계층의 기능은 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것이다.
ISO/OSI 참조 모델(8계층)
- 표현 계층 : 응용프로그램에서 데이터의 의미 해석
- 데이터 암호화, 합축, 특정 호스트 표시 절차 준수
- 세션 계층 : 데이터 교환 시 동기화, 체크 포인트 점검, 복구
- TCP/IP 프로토콜 스택에 상위 2계층 없음
- 이런 서비스 필요할 경우 응용프로그램에서 구현하여야 함
캡슐화
공격받는 네트워크
네트워크 보안 분야
- 컴퓨터 네트워크를 공격자가 어떻게 공격하는가?
- 우리는 공격에 대해 어떻게 대응할 것인가?
- 공격에 영향을 받지 않는 구조를 어떻게 설계하고 구축할 것인가?
초기목표는 상호 신뢰할 수 있는 특정 그룹 사용자 대상으로 투명한 네트워크를 제공했다. 즉, 초창기에 인터넷은 보안에 대한 고려없이 설계되었다. 후에 보완작업을 진행해 왔다. 현실적으로 모든 계층에서 보안 요소를 고려해야 한다.
공격자는 인터넷을 경유하여 호스트에 멀웨어를 침투시킨다. 일단 맬웨어가 장치에 영향을 미치면 모든 정보를 모아 공격자에게 다시 보낸다.
멀웨어는 다음의 형태로 호스트에 침투 :
요즘 맬웨어는 자기복제(self replicating)를 한다. 일단 한 호스트에 영향을 미치면, 그 호스트에서 인터넷을 통해 다른 호스트로의 엔트리를 찾고, 새롭게 영향을 받은 호스트로부터 또 다른 많은 호스트로의 엔트리를 찾는다.
맬웨어는 바이러스,웜, 또는 스파이웨어의 형태로 퍼질 수 있다.
- 바이러스 : 특정 대상(예: e-mail의 첨부 파일)을 수신 또는 실행하면 자가 복제 또는 감염됨
- 웜 : 수동적으로 특정 대상을 수신하면 자가 복제 또는 감염됨.
- 스파이웨어 멀웨어 : 사용자의 키 스트로크, 웹 사이트 방문 등의 내역을 특정 사이트로 전송
- 감염된 호스트는 사용자의 개입없이 봇넷에 등록되어 추후 스팸 발송 또는 DDos 공격에 사용
공격자 : 서버 및 네트워크 하부구조 공격
서비스 거부(Denial of Service, Dos) : 공격자는 서버 또는 네트워크에 가짜 트래픽을 과도하게 발생시켜 정상적인 트래픽 처리가 불가능하게 한다. 순서는 다음과 같다.
- 타겟 선정
- 타겟 주변에 봇넷을 구성해서 타겟 공격 준비
- 봇넷에 명령을 내려 타겟대상으로 다수의 패킷 전송을 지시
공격자의 패킷 탐지
패킷 스니핑
공유 가능한 이더넷 또는 무선의 방송 매체 대상으로 프로미스큐어스(promiscuous)모드로 설정된 네트워크 인터페이스를 통해 지나가는 모든 패킷을 읽고 해석하여 비밀번호 등을 알아낼 수 있다.(와이어샤크(wireshark)프로그램도 패킷 스니퍼의 일종이다.)
공격자는 당신이 신뢰하는 사람인 것처럼 위장할 수 있다.
IP 스푸핑 : 거짓 발신지 주소로 패킷을 전송하는 것
컴퓨터 네트워킹과 인터넷의 역사
패킷 교환 개발
독점 네트워크와 인터네트워킹
네트워크 확산
인터넷 급증: 1990년대
새 천 년
요약
'컴퓨터네트워크' 카테고리의 다른 글
컴퓨터네트워크_3.5~7 TCP (0) | 2021.11.07 |
---|---|
컴퓨터네트워크_02.애플리케이션 계층 (0) | 2021.10.11 |