1.1 인터넷이란 무엇인가
호스트 = 종단시스템
종단 시스템은 통신 링크와 패킷 스위치의 네트워크로 연결(ISP)
각 링크는 동출 케이블, 구리선 등의 물리 매체로 구성.
다양한 전송률(링크 대역폭)을 이용하여 데이터를 전송하고 bps단위를 이용.
호스트가 다른 호스트로 데이터 보낼 때 데이터를 세그먼트로 나누고
패킷 (= 각 세그먼트에 헤더를 붙인 정보 패키지)을 보내는데 이를 목적지 호스트에서 받아서 원래의 데이터로 조립
패킷 스위치 = 입력 통신 링크로 도착하는 패킷 받아서 출력 통신 링크로 보냄
라우터(네트워크 코어)랑 링크계층 스위치(액세스 네트워크)가 있음.
패킷이 송~수신 종단 시스템에 도착할 때까지 거쳐 온 통신 링크+ 패킷 스위치들 = 경로
ISP = 종단 시스템이 인터넷에 접속하는 도구. 각 ISP는 패킷 스위치와 통신 링크로 구성됨
웹 사이트와 비디어 서버를 인터넷에 직접 연결하도록 CP에게 인터넷 접속 제공
ISP들끼리도 연결돼야 하겠지? -> 하위 계층 ISP들은 상위 계층 ISP를 통해 연결됨
각 ISP 네트워크는 따로 관리되고 IP 프로토콜을 수행하며 네이밍과 주소배정 방식을 따름
호스트와 패킷 스위치 등 인터넷의 구성요소는 여러 프로토콜을 수행
ex) TCP/IP = 인터넷의 주요 프로토콜로 IP는 라우터와 호스트 사이 송수신되는 패킷 포맷 기술
인터넷 표준은 IETF에서 개발하며 IETF 표준 문서를 RFCs라고 함.
분산 어플리케이션 = 각 어플들은 서로 데이터를 교환하는 많은 호스트를 포함함.
인터넷 어플은 네트워크 코어에 있는 패킷 스위치가 아닌 호스트에서 수행됨.
어플을 개발하면 각 호스트에서 수행되는 프로그램들이 서로에게 데이터를 송수신할 수 있어야 하고,
이를 위해 인터넷 인프라 구조는 한 호스트가 다른 호스트에게 데이터를 전달하는 소켓 인터페이스를 제공
*소켓 인터페이스: 송신 프로그램이 따라야 하는 규칙의 집합
우편 서비스에서 특급우편, 배달 증명 등 여러 서비스가 있듯이 인터넷이 어플에게 제공하는 다중의 서비스들을 2장에서 다룸
프로토콜: 둘 이상의 통신 개체 간에 교환되는 메시지 포맷과 순서뿐 아니라, 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의
둘 이상의 통신 개체가 함께 인식하는 프로토콜이 있어야 네트워킹 가능
메시지의 송수신과 관련된 행동이 '질문과 응답 프로토콜'의 중심에 있다.
ex) 호스트의 혼잡제어 프로토콜은 송수신자 간 전송되는 패킷률 조절
ex) 라우터의 프로토콜은 송신지에서 목적지까지 패킷의 경로 설정
1.2 네트워크의 가장자리
네트워크의 가장자리 = 호스트 & 종단 시스템 = 데스크톱, 서버, 모바일 컴퓨터 등
호스트는 때때로 클라이언트 or 서버로 구분
서버: 웹 페이지 저장 분배, 비디오 스트림, 전자메일 릴레이 등 클라이언트보다 더 강한 기능을 갖춤
접속 네트워크 = 종단 시스템 간의 경로상에 있는 첫 번째 라우터에 연결하는 네트워크
가정 접속: DSL, 케이블, FTTH, 다이얼 업 위성
DSL: 유선 로컬 전화 서비스를 제공하는 지역회사 텔코가 인터넷 접속 서비스 제공
각 고객의 DSL 모뎀은 디지털 데이터를 받아서 전화선을 통해 CO로 전송하기 위해 고주파 신호로 변환.
각 신호는 DSLAM에서 디지털 포맷으로 다시 변환
고객 쪽에 있는 스플리터-> 가정에 도착하는 데이터와 전화 신호를 분리하여 데이터 신호를 DSL 모뎀으로 전송.
텔코 쪽의 CO에 있는 DSLAM-> 데이터와 전화 신호를 분리하여 데이터를 인터넷으로 송신.
케이블 인터넷 접속: 케이블 TV회사의 기존 케이블 TV 기반구조 이용
광케이블, 동축케이블 모두 채택(= HFC, Hybrid Fiber Coax)
케이블 모뎀 - 외장형 장치, 이더넷 포트를 통해 가정 PC에 연결
케이블 헤드엔드- CMTS가 DSL의 DSLAM과 유사한 기능을 제공.
케이블 모뎀이 HFC 네트워크를 업스트림&다운스트림 2개의 채널로 나눔.
공유 방송 매체, 헤드엔드가 보낸 모든 패킷이 모든 링크의 다운스트림을 통해 모든 가정으로 전달
-> 여러 사용자가 다운스트림 채널에서 서로 다른 비디오 파일 동시 수신 시 느려짐.
So 분산 다중 접속 프로토콜: 전송률 조정, 충돌 피하기 위해 사용
FTTH: CO로부터 가정까지 직접 광섬유 경로 제공
가정에 가까운 CO까지 하나의 광섬유로 온 다음 CO에서 각 가정별 광섬유로 분리됨 = 스플리팅
스플리팅 : AON/PON. AON은 근본적으로 교환 이더넷(6장)
PON: 각 가정이 홈 라우터를 통해 ONT에 연결한 후 ONT는 지정된 광섬유로 이웃 스플리터에 연결.
각 스플리터는 텔코의 CO에 있는 OLT로 연결. OLT가 광신호와 전기신호 간 변환 제공
기업 접속: 이더네스, 와이파이
LAN: 종단 시스템을 가장자리 라우터에 연결
LAN기술 중 가장 널리 사용하는 이더넷: 이더넷 스위치에 연결하기 위해 꼬임쌍선을 이용,
이더넷 스위치들의 네트워크는 더 큰 인터넷으로 연결됨.
무선 랜 사용자-기업 네트워크에 연결된 AP로 패킷을 송수신하고, 이 AP가 유선 네트워크에 다시 연결됨.
광역 무선 접속: 3G, 4G, LTE
와이파이와 달리 사용자는 기지국의 수십km 반경 내에만 있으면 됨.
물리매체 : 전자파나 펄스를 전파하여 물리매체 상에서 전달
유도매체: 광섬유케이블, 꼬임쌍선, 동축 케이블 등 견고한 매체로 파형을 유도하여 전달
1.3 네트워크 코어
네트워크 코어: 호스트들을 연결하는 패킷 스위치들과 링크들의 연결망
패킷 교환
호스트들끼리 메시지를 교환할 때 송신 시스템은 메시지를 패킷이라고 하는 작은 데이터 덩어리로 분할,
송신 측과 수신 측 사이에서 패킷은 통신링크 & 패킷 스위치(라우터/링크계층 스위치)를 거친다.
R bits/sec 속도로 L bits 패킷 전송 시 시간은 L/R초
저장 후 전달: 패킷 스위치가 출력링크로 패킷 첫 비트 전송하기 전에 전체 패킷을 받아야 함
저장 후 전달을 하기 때문에 스위치에서 L/R초 동안 패킷 전체를 받고, 다시 보내야 해서
총 2L/R의 지연 시간을 가진다. N 개의 링크가 있을 시 종단 간 지연 d = N*L/R
큐잉 지연: 패킷 스위치가 가진 버퍼에 도착하는 패킷이 다른 전송 중인 패킷들 때문에 버퍼에서 대기하면서 발생하는 지연
패킷 손실: 도착하는 패킷이 버퍼에 들어가야 하는데 이미 다른 대기 중인 패킷들로 가득 차 패킷을 폐기하는 경우
전달 테이블: 라우터가 패킷 전달을 어느 링크로 할지, 라우팅 하기 위해 목적지 주소를 라우터의 출령 링크로 매핑하는 테이블
송신 호스트는 패킷 전송 시 목적지 호스트가 가지고 있는 IP주소를 패킷의 헤더에 포함하여 보내기 때문에
라우터는 이를 받아서 전달 테이블을 색인한다. 이때 전달 테이블이 설정되는 라우팅 프로토콜은 5장에서 다룸
회선 교환
호스트 간 통신을 위해선 경로상에 필요한 자원(링크전송률, 버퍼 등)은 통신 세션 내내 확보/예약 된다.
온디멘드(on-demand)방식으로 자원을 요청하고 사용한다.
연결이 이루어지는 동안 네트워크 링크가 일정한 전송률을 예약하기 때문에 전송률이 보장된다.
링크 하나가 4개의 회선을 가지면 종단 간 연결을 사용하는 한 링크에 대해
그 연결은 통신세션 동안 전체 링크 전송 용량의 1/4를 얻는다.
다중화
주파수-분할 다중화(FDM): 링크를 통해 설정된 연결은 그 링크의 주파수 스펙트럼(대역폭)을 공유
시-분할 다중화(TDM): 시간을 일정주기의 프레임으로 구분하고 각 프레임은 고정된 수의 시간 슬롯으로 나뉨.
네트워크가 모든 프레임에서 시간 슬롯 1개를 각 연결에 할당(종단간 회선이 100개의 링크를 지나더라도 전송시간을 일정)
패킷 교환 vs 회선 교환
회선교환 입장: 패킷교환 너네들은 예측할 수 없는 큐잉 지연 때문에 실시간 서비스에서 적당하지 않아.
패킷교환 입장: 회선교환 너네들은 비활용 기간엔 회선이 놀고 있으니까 낭비야. 우리가 더 간단하고 효율적이고 구현 비용이 적어.
ex) 각 사용자가 1Mbps 링크를 공유, 활동시간(100kbps로 데이터 생산)과 비활동시간을 반복 중, 전체 시간 중 10%만 활동.
회선교환은 1Mbps/100kbps로 10명만 가능하겠네.
패킷교환은 35명 있다고 가정했을 때 11명 이상 사용자가 동시에 활동할 확률은 0.04%니까 10명 이하 동시 사용자가 있을 확률이
99.96%로 데이터 통합 도착률이 1Mbps보단 작겠지. 10명 이상 사용자가 있으면 패킷의 도착속도가 링크의 출력속도보다 빠르니까 패킷 지연이 생길 순 있겠지만 확률이 작아서 거의 3배의 인원을 커버할 수 있어.
ex) 10명의 사용자가 한 번에 1000비트 패킷을 100개 생성하면 100만 비트.
회선교환은 한 프레임에 10개 슬롯, 각 슬롯은 1000비트인 TDM은 한 프레임당 1개의 시간 슬롯 사용하기 때문에
100만 비트 = 10개 링크 * x초 라는 식에 의해 x= 10초.
패킷교환은 그냥 1Mbps 가득 찰 때까지 링크 패킷 보내다 보면 1초 만에 가능.
네트워크의 네트워크
호스트와 콘텐츠 제공자들을 접속 ISP들이 연결하려면 접속 ISP들끼리도 연결돼야 함.
네트워크 구조1: 모든 접속 ISP들을 글로벌 ISP와 연결
접속 ISP는 고객, 글로벌 ISP는 제공자로서 고객에게 과금하여 네트워크 구축 및 유지
네트워크 구조2: 수십만 개의 접속 ISP와 다중 글로벌 ISP, 글로벌 ISP들끼리는 서로 연결
네트워크 구조3: 지역 ISP는 1-계층 ISP들과 연결(level3 커뮤니케이션즈, AT&T, 스프린트, NTT 등),
작은 지역 ISP를 연결하는 큰 지역 ISP들도 있고 큰 지역 ISP들은 1-계층 ISP들과 연결되는 다중 계층 구조.
각 계층 구조의 레벨 사이에서 제공자와 고객의 이해관계로 비용을 지불하고 네트워크를 구축.
네트워크 구조4: 네트워크 구조3에서 PoP(points of presence)와 멀티-홈, peering, IXP(Internet Exchange Point)를 갖춤.
*PoP: 최하위 계층을 제외하고 모든 계층에 존재, 제공자의 네트워크 내에 있는 PoP에서 고객 ISP가 제공자 ISP에 연결됨.
고객 네트워크가 제공자의 PoP에 연결되기 위해 고객은 자신의 라우터 중 하나를 PoP에 있는 라우터에 직접 연결되도록
고속 링크를 제3자 통신 서비스 제공자로부터 임대하여 연결.
*멀티-홈: 둘 혹은 그 이상의 제공자 ISP에 연결. 하나의 제공자로부터 연결이 끊겨도 다른 제공자로 인터넷 연결 유지
*피어링: 서비스 제공 ISP에 제공하는 요금을 줄이기 위해 같은 계층에 있는 가까운 ISP들끼리 피어링하여
모든 트래픽을 싹 다 상위 계층 ISP를 통해서 받을 필요 없게 하여 비용을 줄임.
*IXP: 제 3의 회사가 IXP를 구축하면 ISP들이 피어링 할 수 있는 만남의 장소 제공
네트워크 구조5: 네트워크 구조4에서 콘텐츠-제공자 네트워크를 추가.
구글 같은 거대 콘텐츠 제공자가 자기들의 사설 네트워크를 하위 계층 ISP들과 피어링 해주는 방식.
1.4 패킷 교환 네트워크에서의 지연, 손실과 처리율
처리 지연: 패킷 헤더를 조사하고 그 패킷을 어디로 보낼지를 결정하는 시간 (수 msec)
업스트림 노드->라우터 A로 전송하면서 발생하는 패킷 비트 오류 수준 조사기간 등의 지연 요소 가질 수도..
큐잉 지연: 큐에서 링크로 전송되기를 기다리는 시간. (수 마이크로초 ~수 밀리초)
트래픽이 많고 다른 많은 패킷이 전송 대기 중이면 큐잉 지연은 매우 길어짐
전송 지연: 패킷이 선입선출이라는 가정하에 패킷 길이 L bits, 링크 전송률 R bps (수 마이크로초 ~수 밀리초)
패킷의 모든 비트를 링크로 밀어내는데 필요한 시간
전파 지연: 링크의 처음부터 목적지 라우터까지의 전파에 필요한 시간(수 초)
사용하는 물리매체마다 다르며 두 라우터 상의 거리를 전파속도로 나눔 (d/s)
전송 지연은 라우터가 패킷을 '내보내는데' 필요한 시간으로 라우터 간 거리와 상관없음
전파 지연은 패킷 길이나 링크 전송률과는 관계x
큐잉지연
패킷마다 다르기 때문에 평균 큐잉지연, 큐잉 지연 분산, 큐잉 지연 확률 등을 사용
a= 패킷이 큐에 도착하는 평균율/ R= 전송률/ L= 비트
La = 비트가 큐에 도착하는 평균율 / La/R = 트래픽 강도/ 큐의 크기는 무한 일 때
La/R이 1보다 크면 큐잉 지연이 무한대에 도달, 따라서 트래픽 강도<1이 필수.
패킷이 L/R초마다 주기적으로 도착하면 큐잉지연 발생 x
패킷이 몰려서(bust) 도착하면 N개의 패킷이 (L/R)N초마다 도착 -> n번째 패킷이 (n-1)L/R초의 큐잉지연 겪음.
*대부분은 bust하지 않고 랜덤하게 큐에 도착하는 프로세스이기 때문에 지연에 대한 완전한 통계적 분석은 x
*그럼에도 트래픽 강도가 0에 가까우면 평균 큐잉 지연이 0에 가까워짐
패킷손실
큐의 용량이 한정적이기 때문에 트래픽 강도가 1보다 클 때 도착한 패킷을 저장할 수 없어 패킷을 버림
종단 간 지연(출발지~목적지까지의 지연)
출발지~목적지 호스트 사이에 N-1개의 라우터가 있다/ 큐잉 지연 없음
호스트에서의 전송률 R 비트/초라고 하면 종단간 지연 = N(처리지연+전송지연+전파지연)
Traceroute 프로그램
출발지에서 패킷을 보내면 경로에 있는 라우터가 출발지로 메시지를 역으로 보내면서
출발지가 응답 메시지를 받을 때까지의 경과시간과 보내온 라우터의 이름과 주소를 기록, 패킷의 경로 재구성 가능
종단 시스템에서의 지연
공유 매체로 패킷을 전송하고자 하는 종단 시스템은 프로토콜의 일부를 의도적으로 지연할 수도 있다(6장)
VoIP어플이 있는 미디어 패킷화 지연: 송신 측이 먼저 패킷을 인터넷으로 보내기 전에 패킷을 인코드 된 디지털 음성으로
채워야 하는데 그 기간(패킷화 지연)
종단 간 처리율
P2P 파일 공유 시스템에선 순간적인 처리율 = 호스트가 파일을 수신하는 비율
파일 F비트, 호스트가 모든 F비트를 수신하는데 T초가 걸리면 평균 처리율 = F/T bit/sec
서버-라우터-클라이언트 구조가 있고, 서버~라우터는 Rs, 라우터~클라이언트는 Rc의 링크속도를 가질 때
Rs>Rc인 경우에 라우터는 자신이 수신하는 비트만큼 빠르게 비트를 전달할 수 없다. 이럴 땐
min[Rc,Rs] = 병목 링크의 전송률이 된다. 그렇다면 평균 처리시간은 F/min[Rc,Rs]
만약 N개의 링크를 가지면 min[R1,R2,...,Rn]이 처리율이 된다.
코어에 연결된 10개의 서버와 10개의 클라이언트가 10개의 동시적인 다운로드를 한다면
10개의 다운로드가 통과하는 코어에 R의 속도를 가진 하나의 링크가 있다면 R/10의 처리율을 가지기에,
min[Rc,Rs,R/10]을 통해 병목 링크의 전송률을 구한다.
1.5 프로토콜 계층과 서비스 모델
계층의 구분은 커다란 시스템 내에서 다른 요소에 영향을 주지 않고 서비스 구현을 변화시킬 수 있게 한다.
각 계층은 어떤 동작을 수행하거나 직접 하위 계층의 서비스를 이용한다.
모듈화: 시스템 구성요소의 갱신을 더 쉽게 해 줌
계층화 단점: 한 계층의 기능이 하위 계층과 기능적으로 중복, 어느 한 계층에서의 기능이 다른 계층에서만
존재하는 정보를 필요로 할 수도 있다.
프로토콜 스택: 다양한 계층의 프로토콜 모두 합한 것.
5계층 인터넷 프로토콜 스택과 7계층 OSI 참조모델이 있다.
어플리케이션 계층
HTTP(웹 문서 요청과 전송), SMTP(전자메일 전송), FTP(두 호스트 간 파일 전송) 등의 프로토콜 포함.
어플 계층 프로토콜: 여러 종단 시스템에 분산되어 있어서 호스트 간 정보 패킷(메시지)을 교환할 때 사용
전송 계층
TCP, UDP 전송 프로토콜, 어플 계층 메시지를 전달.
TCP: 연결 지향형 서비스 제공, 목적지로의 메시지 전달 보장과 흐름제어,
긴 메시지를 짧은 메시지로 나누고 혼잡제어, 출발지 전송속도를 컨트롤
UDP: 비연결형 서비스 제공, [신뢰성, 흐름제어, 혼잡제어 제공x]
세그먼트 = 전송 계층 패킷
네트워크 계층
호스트에서 다른 호스트로 데이터그램을 라우팅.
출발지 호스트에서 전송 계층 프로토콜은 전송 계층 세그먼트와 목적지 주소를 네트워크 계층으로 전달함.
이때 목적지의 전송계층으로 세그먼트 운반하는 서비스를 네트워크 계층이 제공.
IP 프로토콜: IP 데이터그램의 필드를 정의하며 호스트와 라우터가 필드에 동작하는 방식 정의
모든 네트워크 계층을 가진 인터넷 요소는 IP프로토콜을 딱 한 개만 가지고 수행.
라우팅 프로토콜: 인터넷은 네트워크의 네트워크이며, 한 네트워크 내부에서 라우팅 프로토콜 수행 가능
링크 계층
네트워크 계층은 출발지~목적지 간 일련의 패킷 스위치를 통해 데이터그램을 라우트함.
경로상의 한 노드에서 다른 노드로 패킷을 이동하기 위해 링크 계층 필요.
네트워크 계층에서 링크 계층으로 보내진 데이터 그램을 경로 상의 다음 노드에 전달.
다음 노드에서 링크계층은 전달받은 데이터그램을 상위 네트워크 계층으로 올려 보냄.
링크 계층 프로토콜: 링크 기반 신뢰적 전송 제공 프로토콜, 이더넷/와이파이 등의 DOCSIS프로토콜 등.
하나의 링크에선 이더넷에 의해 다뤄지다가 다음 링크에선 ppp에 의해 다뤄질 수도 있고...
프레임 = 링크 계층 패킷
물리 계층
프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동, 링크 및 실제 전송매체(케이블 등)에 의존
OSI 계층에서의 프레젠테이션 계층
통신하는 어플들이 교환되는 데이터의 의미를 해석하도록 하는 서비스 제공. 데이터 기술, 데이터 압축 및 암호화 등.
어플마다 데이터가 표현/저장되는 포맷을 신경 쓰지 않아도 되도록 하는 기능.
OSI 계층에서의 세션 계층
데이터 교환의 경계와 동기화 제공. 체킹포인트와 회복 방법 수단 제공
ex) 인터넷 라우터들은 1~3 계층 프로토콜을 구현하는 반면 링크계층 스위치는 1~2 계층을 구현하기 때문에
인터넷 라우터와 달리 3계층인 IP 프로토콜을 스위치는 구현할 수 없다.
캡슐화
전송 계층 세그먼트는 어플 계층 메시지를 캡슐화함.
추가된 정보는 수신 측의 전송 계층이 그 메시지를 적절한 어플로 보내도록 하는 정보와, 오류검출 비트를 포함.
네트워크 계층 데이터그램은 전송 계층 세그먼트에 출발지&목적지 호스트 주소와 동일한 헤더정보를 추가.
링크 계층 프레임은 네트워크 계층 데이터그램에 자신의 헤더 정보를 추가.
자기 계층에서의 헤더 필드 + 상위 계층으로부터의 페이로드 필드를 더해가는 형태.
수신 측에선 캡슐화의 역방향으로 과정을 반복한다.
'CS > Computer Network' 카테고리의 다른 글
[컴퓨터 네트워크 하향식 접근] Chapter06 링크 계층 (0) | 2024.08.06 |
---|---|
[컴퓨터 네트워크 하향식 접근] Chapter05 네트워크 계층: 제어 평면 (0) | 2024.08.04 |
[컴퓨터 네트워크 하향식 접근] Chapter04 네트워크 계층: 데이터 평면 (0) | 2024.08.03 |
[컴퓨터 네트워크 하향식 접근] Chapter03 트랜스포트 계층 (0) | 2024.07.31 |
[컴퓨터 네트워크 하향식 접근] Chapter02 애플리케이션 계층 (0) | 2024.07.26 |