-> 네트워크들을 상호 연결한 네트워크
(inter-connected network of networks(subnets) )
다양한 유형의 호스트(end system/host)와 스위치들을 통신 link로 연결한 분산 시스템
인터넷의 끝에 연결된 종단 장치(end system) : 사용자의 사용도에 따라 end system이 달라지니..
ex) PC, 서버, 스마트폰, IoT 센서 등
통신 장치들 간에 정보 전달 단위인 패킷을 전달하는 유/무선 매체(media)
구리선, 광케이블, wifi 채널, 모바일 통신 채널, 위성 채널 등
초당 전송가능한 비트수 (bit per second, bps)
링크의 품질에 따라 달라짐
단위 : bps, Kbps, Mbps, Gbps, Tbps
다수의 통신 장치를 통신 링크로 연겨랗는 장치
입력 링크로 수시된 패킷을 출력 링크로 전달하는 장치 (교환, switching) : 목적지가 있는 곳까지 전달(forwarding)한다
-> router, L2 Switch(링크 계층 스위치)

일반적으로 코어 네트워크(core network)에서 사용
(core network : access network를 연결해주는)
일반적으로 접속 네트워크(access network)에서 사용

호스트(종단 시스템): 컴퓨터, 스마트폰 등 사용자가 직접 사용하는 장치로, 데이터의 송수신이 이루어집니다.
액세스 네트워크: 이러한 호스트가 인터넷에 접속할 수 있도록 돕는 네트워크 인프라로, 호스트와 ISP의 네트워크를 연결합니다.
FTTH : Fiber To The Home : 광케이블 형태가 집으로 직접 연결되는 것
(예시 : 기업-기업, 국가-국가 :: 이렇게 연결 해주는 것!)

access ISP : 가정/기업/대학
upper-tier ISP : access ISP들을 연결해줄 수 있는 (loaf한)
IETF(internet engineering task force)에서 제정한 프로토콜
RFC(Request For Comment)번호로 표시

프로토콜이란? (프로토콜의 3대 원칙)
통신 장치들간의 교환될 메세지의 형식(syntax)
메세지 교환 순서 정의(timing)
메세지 교환 시, 수행해야하는 행위 정의(semantics)
홈 접속 네트워크(home access network) :: residential(ISP에 의뢰하는 게 일반)
엔터프라이즈 접속 네트워크(enterprise access network) : 네트워크롤 구축하고, 사용자에게 제공할 수 있는 곳을 enterprise라고 함
: 인터넷에서 host, 종단 장치가 연결되는 접속 네트워크

::> 핵심 : DSL model은 전용 속도를 제공받는다
DSL은 전화망(전화선 :: 구리선임)을 사용함.
모뎀 : 다양한 장치로부터 모은 정보를 전화선으로 전달해주는 장치 (전화선을 거쳐, 라우터를 거쳐, core network로 이동)

동일한 전화선인데, 동일한 신호를 아날로그 신호로 표현하면,,
음선 아날로그 신호 < 4kHz ::> 1104KHz로 전화선은 전달 가능.. ::> 음성 신호로 주파수로 보내면서,, 달라지면, latency발생해서 불리할 수 있는.. 뭐 그러 거..(퓨리에분석)

등축케이블(:: 구리선임) 하나를 여러 가정이 공유함.
::> 핵심 : cable model은 속도를 이웃과 공유 한다!

상향 : upstream , 하향 : downstream (전송 속도가 아니라, 공유 속도)

TV/video정보를 보낼 수 없는 고주파/저주파 부분에 인터넷 데이터 정보를 담아서 보내는.. (이때 푸리에분석을 사용)
: 앞선 2개와의 차이점 -> 광 케이블 이용!
광케이블: 비용은 많이 들지만, 고속의 속도를 얻을 수 있다.

TDM-PON (passive optional network)
: 시간 분할 다중 접근 (10Gbps 전후의 공유 전송 속도 제공)
WDM-PON
: 파장 분학 다중 접근 (가입자별로 서로 다른 파장의 광 신호 할당) - 수Gbps 전후의 전용 전송속도 제공


정의
: 정보를 표현하는 신호를 전달하는 매개체
: 통신 장치의 물리적 연결 매개체
유형
: 유도 매체(guided media) - TP(twisted pair :: 2개의 선을 꼬아서 만든), 등축 케이블, 광케이블
: 비유도 매체(unguided media) - wifi, 위성, 이동전화 무선 채널
네트워크 코어와 라우터(고속의 링크를 연결)
패킷 스위치(packet switching)
회선 스위치(circuit switching)
인터넷 코어 구조
정의
: access network들을 연결하기 위해 ISP들이 운영ㅎ는 광역 네트워크
구성
: 라우터들을 고속의 링크로 연결
종단간 경로 (end-to-end)
: N개의 링크와 N-1개의 라우터의 연결


: 전송 장치 간에 전달되는 정보 단위
: 정보 링크의 공정한 전송을 위한 긴 메세지를 작은 패킷 단위로 나누어 전송함
: 입력 링크와 출력 링크 간에 패킷 단위 교혼
: L2(링크 계층) 스위치 (access network에서 작동하는 것), 라우터
초당 링크가 전송가능한 비트의 수(bps)
링크의 종류에 따라 달라짐
fast Ethernet 링크 : 100Mps, Gigabit Ethernet 링크 : 1000Mbps
전송 장치가 패킷을 링크로 전송하는데 걸리는 시간
-> 패킷 크기 L bit, 링크 전송 속도 : R bps(bit/sec)
::> 패킷 전송 지연 시간 : L/R sec
계산) L=7.5Mbits, R=1.5Mbits -> 전송 지여 시간 : 5 sec
라우터의 저장-전달 전송
: 수신 패킷을 버퍼 메모리에 저장
: 패킷을 완전히 수신 후, 패킷 전송 시작
: 출발지와 각 라우터에서 전송 지연 시간 발생 (출발지와 각 라우터 사이 시간 : data 저장 시간 발생!)
: 패킷 크기 : L bit, 링크 전송속도 : R bps, 링크 개수 : N
-> D end_to_end = N * (L/R) , 전달 지연시간 미고려
output으로 나가는 처리 시간이 input으로 들어오는 시간보다 더 느린 경우, 큐잉 지연시간이 발생한다.
(input이 여러개, output은 1개니까..)

정리)
: 패킷이 패킷 스위치(라우터)의 출력 링크의 큐 버퍼 메모리에서 전송 전에 대기하는 시간
: 출력 링크의 전송 속도보다 많은 양의 패킷이 해당 링크로 교환될 때 발생.
: 버퍼 메모리에서 패킷이 저장되지 못하고 없어지는 현상 (송신은 잘 되었는데, 버퍼 공간 부족으로 데이터가 유실되는 것)
: 유한한 크기의 버퍼 메모리에 저장도리 수 없을 만큼 많은 양의 패킷이 해당 링크로 교환될 때 발생

라우팅 테이블(Routing table)
: 입력 패킷에 대한 교환 규칙을 정의하는 자료구조 (패킷을 어디로 보내는지에 대한 정보가 담겨있는 테이블)
: 패킷 전달 테이블(forwarding table)

라우팅 프로토콜(Routing protocol)
: 라우팅 테이블을 자동으로 생성하는 프로토콜
: ↔ packet switching (packet switching과 대비되는 개념)
: 스위치의 입력 포트에 연결된 회선(링크)을 출력 포트에 연결된 동일 전송속도의 회선으로 교환
: 회선 교환 작업을 일련의 스위치에서 반복하여, 종단 장치를 일정 전송속도의 전용 회선으로 연결
: No sharing link, No store-and-forward, No queing delay

회선 스위치의 특징/응용
: 일정 전송 속도 보장
: 짧고 이정한 지연 시간이 보장 (전화 같은 것에 적합)
문제점 : 데이터가 발생하지 않는 구간에서는 회선이 낭비

회선은 오직 10명만 사용 가능 (보장된 속도)
패킷은 더 많은 인원 사용 가능 (사용 인원이 많아질 수록 속도 느려짐. 하지만 11명 이상이 동시에 사용할 확률은 낮기 때문에..)


통신 프로토콜의 정의
1. syntax 2. timing 3. semantics

Lower layer에서 protocol을 만들어서, higher layer의 규약을 정해주는.. 그렇게 함으로써, User에게 규약을 정해줌으로써, Human interface를 정해주는.. 나아가 server까지도..

계층 구조의 장점
: 새로운 프로토콜 정의에 용이
: 특정 통신 기능 또는 서비스 수정 용이
: 전체 시스템 이해 용이
단점
: 최적 시스템 구현 어려움 (프로토콜 단위 사용, 계층간 서비스 interface 구현)
프로토콜
: 특정 통신 서비스를 위한 정보 교환 규칙 정의
: 유사한 통신 서비스를 위해 유사한 프로토콜 다수 정의 가능
: 물리 매체 프로토콜 : UTP, 광케이블, 무선 채널
: 인터넷 응용 프로토콜 : HTTP(웹 서비스), SMTP(이메일 서비스)
계층
: 유사한 프로토콜들의 집합 -> 1개의 계층에는 다수의 프로토콜 존재!
TCP/IP 계층 구조
: 인터넷의 프로토콜 구조
: 5계층 구조
OSI(Open System Interconnection) 구조
: ISO에서 정의한 표준 모델이 있음 (실제 사용하진 않지만, 참고용으로는 활용되는 중)
: 7계층 구조

TCP/IP 계층 구조의 5계층 위에는 Human이 있다고 생각하면 편해!
physical의 종류에 따라 최적의 link가 결정됨. (link 여러 개 존재 가능!)
link들간의 packet을 교환하는 기능을 하는 곳 (packet 교환 시, 큐잉지연, data손실이 발생할 수 있음) : network
큐잉 지연, data 손실같은 것을 처리하는 곳 : transport
웹 페이지 교환, 파일 교환 등등의 것들 : application
OSI는 application을 application, presentation, session 이렇게 3개로 나눔.
응용 계층(Application layer)
: 인터넷 최종 사용자 서비스를 위한 정보(메세지) 교환 규칙 정의
: 사용자 서비스 종류에 따라 서로 다른 응용 프로토콜 정의
ex) 웹 서비스(HTTP), 이메일 서비스(SMTP), 파일 전송 서비스(FTP), 도메인 네임 서비스(DNS)
트랜스포트 계층(Transport layer)
: 통신하고자 하는 양측에 동일한 protocol이 동작하고 있음.
: 응용 계층 프로토콜 간에 메세지를 작은 전송단위(segment)로 나누고, 전송하는 규칙 정의
: 응용 프로토콜 지정(end-point, Port 번호.. :: 현재 보내는 정보가 어디로 가는 것인지 지정), 오류 제어(error control), 흐름 제어(flow control :: 유저가처리 가능한 범위 내에서 보내주도록 제어), 혼합 제어(congestion control :: traffic이 너무 몰려, queue에 더이상 저장할 공간이 없는 상황. -> packet의 양을 제어!)
: TCP(Transmission Control Protocol), UDP(User Datagram Protocol)



OSI presentation layer
: 응용 프로토콜이 교환하는 정보의 의미를 동일하게 해석하도록 표현하는 규칙 정의
: 데이터 표현, 압축(compression) 방식, 암호(encryption) 방식 등
: TCP/IP 구조에서 필요하 경우, 응용 프로토콜에서 정의
OSI session layer
: 점검 점 입력(check pointing)으로 교환되는 정보 구분(delimiting), 교환 정보를 상호 동기화(synchronization), 복구할 수 있는(recovery) 규칙 정의
: TCP/IP 구조에서 필요하 경우, 응용 프로토콜에서 정의


제어정보는 TCP를 위해서 존재하는 것!
(캡슐화는 데이터정보, 제어정보 둘 다 되는 것!)
