-
1. 컴퓨터 네트워크와 인터넷공부/컴퓨터 네트워크 2022. 5. 10. 00:58반응형
이 글은 Computer Networking: A Top-Down Approach 7th를 읽고 정리한 글입니다.
1. 인터넷이란 무엇인가?
1.1 구성요소로 본 인터넷
인터넷으로 연결된 모든 장치는 호스트(host), 종단 시스템(end system)이라고 부른다.
종단 시스템은 통신 링크와 패킷 스위치의 네트워크로 연결되어 있다.
패킷: 한 종단 시스템이 다른 종단 시스템으로 보낼 데이터를 가지고 있을 때, 송신 종단 시스템은 그 데이터를 세그먼트로 나누고 각 세그먼트에 헤더를 붙여 만들어진 정보 패키지
링크: 광케이블, 구리선과 같은 다양한 물리 매체로 구성되어 있으며, 각각의 링크들은 다양한 전송률로 데이터를 전송한다.
패킷 스위치: 최종 목적지 방향으로 패킷을 전달하는 것으로 가장 유명한 것은 라우터와 링크 계층 스위치가 있다.
TCP와 IP는 인터넷에서 가장 중요한 프로토콜로, IP 프로토콜은 라우터와 종단 시스템 사이에서 송수신되는 패킷 포맷을 기술한다.
1.2 프로토콜이란 무엇인가?
사람들이 의사소통하는 것을 컴퓨터끼리 한다고 생각하면 편하다.
- [사람] A: 안녕? → B: 안녕? → A: 몇시야? → B: 오후 2시
- [기계] Client: TCP 연결 요청 → Server: TCP 연결 응답 → Client: HTTP GET Method → Server: 파일 전달
프로토콜은 둘 이상의 통신 개체 간에 교환되는 메시지 포맷과 순서뿐 아니라, 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다.
그래서 통신하는 둘 이상의 원격 개체가 포함된 인터넷에서의 모든 활동은 프로토콜이 제어한다.
2. 네트워크 코어
2.1 패킷 교환
네트워크 응용에서 종단 시스템들은 서로 메시지를 교환한다. 이런 메시지는 데이터가 크기 때문에 패킷이라고 하는 작은 데이터 덩어리로 분할하여 패킷 스위치를 통해 이동을 하게 된다.
대부분의 패킷 스위치는 저장-후-전달 전송(store and forward transmission) 방식을 사용한다.
이 방식은 스위치가 출력 링크로 패킷의 첫 비트를 전송하기 전에 전체 패킷을 받아야 전달하는 방식이다.
위 사진으로 설명하면 패킷 1, 2, 3이 있고, 현재 라우터에 패킷 1이 일부분 전송되어 있는데, 지금 당장은 목적지에 패킷을 전달할 수 없고, 패킷 1, 2, 3을 전부 보내야 전달할 수 있다는 것이다.
2.2 패킷 교환 - 큐잉 지연과 패킷 손실
각 패킷 스위치는 여러 개의 링크를 가지고 있다.(현재 모든 라우터는 3개의 링크를 가지고 있음)
각 링크에 대해 패킷 스위치는 출력 버퍼(출력 큐)를 가지고 있고, 그 링크로 송신하려는 패킷을 저장하고 있다.
큐잉 지연(queuing delay)은 라우터가 한 번에 하나의 패킷만을 처리할 수 있기 때문에, 먼저 들어온 패킷들이 처리될 때까지 기다리는 시간을 말한다. 위 그림으로 따지자면 중앙 링크에서 맨 왼쪽 초록 패킷은 6개의 패킷 처리를 기다려야 한다.
패킷 손실(packet loss)는 만약 출력 큐에 패킷이 꽉 찼는데, 패킷을 보내면 큐에 저장을 하지 못해서 패킷을 버려야 하는 일이 존재하게 된다. 이것을 패킷 손실이라고 부른다.
2.3 패킷 교환 - 전달 테이블과 라우팅 프로토콜
라우팅 프로토콜은 시작점에서 도착점까지의 경로를 결정하는데, 가장 최적이 되는 경로를 선택하게 된다.
그리고 그 경로를 이동하는 동안 어떤 라우팅에 도착한 패킷이 있을 때, 그 라우팅은 패킷을 어느 링크로 전달하는지 결정하는데 전달 테이블이 쓰인다.
인터넷의 모든 종단 시스템은 IP 주소라는 것을 가지고 있는데, 패킷에서는 패킷의 헤더에 목적지의 IP 주소를 가지고 있다.
그래서 패킷이 어떤 라우터에 도착하면, 라우터는 패킷의 목적지 주소의 일부를 전달 테이블에 조사하고, 그 패킷을 이웃 라우터로 전달한다.
위 그림으로 예시를 들면 어떤 라우터가 확인해야 하는 목적지 주소의 일부가 0111일 때, 전달 테이블을 확인하여 output link가 2인 것을 찾고, 2번 링크로 연결된 이웃 라우터에 전달하는 것이다.
2.4 회선 교환
네트워크를 통해 데이터를 이동하는 방식에서는 우리가 지금까지 위에서 배운 패킷 교환도 있지만, 회선 교환이라는 방식도 존재한다.
회선 교환은 서로 연결되어 있으면 다른 사람이 쓰지 못하는 것이다.
회선 교환의 대표적인 예시는 음성 통화이다. A와 B가 서로 통화하고 있을 때, C가 A 또는 B에게 전화하면 통화중입니다라고 통화할 수 없다.
2.5 회선 교환 - FDM, TDM
회선 교환의 다중화는 링크 내 한 회선이 주파수-분할 다중화(FDM), 시-분할 다중화(TDM)으로 구현된다.
FDM의 경우에는 하나의 회선을 주파수를 다르게 해서 여러명이 사용할 수 있게 만든 것이다. (ex. TV, 라디오)
TDM의 경우에는 일정 주기의 시간마다 한 사용자가 모든 대역폭을 얻을 수 있는 것이다.
위 그림을 통해 이해해보면 보다 쉽게 이해할 수 있다.
2.6 패킷 교환 vs 회신 교환
만약 회신 교환이 더 유명했으면 이 책에서 회신 교환을 중점적으로 다뤘을 것이다.
패킷 교환은 회신 교환보다 전송 용량의 공유에서 효율적이고, 간단하고, 구현 비용이 적다.
좀 더 자세히 패킷 교환이 왜 효율적인지 알아보자
- 사용자가 1Mbps 링크를 공유한다고 가정할 때
- 각 사용자는 활동 시간(100kbps), 비활동 시간(0kbps)을 반복
- 사용자는 전체 시간에서 10%만 활동
회선 교환의 경우에는 한 명당 100kbps씩 할당할 수 있으므로 동시에 10명만 지원할 수 있다.
하지만 패킷 교환의 경우에는 만약 35명의 사용자가 있을 때, 10명 이하의 사람들이 동시에 이용할 확률은 99.96%이고, 데이터의 통합 도착률은 1 Mbps보다 작거나 같으므로 문제가 없다. 그리고 10명이 넘는 동시 사용자가 있을 때는 0.04%로 굉장히 적은 확률인데다가 통합 도착률이 1 Mbps보다 크면 출력 큐에 패킷이 쌓이다가 1 Mbps보다 작아지면 출력 큐의 크기가 줄어들기 때문에 35명이 모두 사용을 해도 문제가 없다.
* 참고
35명의 사용자가 있을 때, 10명 이하의 사람들이 동시에 이용할 확률
0.9996
3. 인터넷 구조
종단 시스템은 ISP(Internet Service Provider)를 통해 인터넷을 접속한다.
ISP는 단어 그대로 인터넷 서비스 제공자를 말한다. 접속 ISP는 케이블, 와이파이, 셀룰러 등등으로 유선/무선 연결을 제공한다.
지구에 종단 시스템은 수십억 개인데 이것을 연결하기 위해서는 접속 ISP들이 서로 연결되어야 한다. 이것을 하나하나 1대1 관계로 연결해주면 링크가 굉장히 많아지기 때문에 ISP끼리 뭉쳐있는 global ISP(초록색)가 있거나, IXP라고 다중의 ISP들이 서로 피어링(peer)할 수 있는 것도 있다. 그리고 global ISP가 닿지 못하는 곳에는 regional net이 만들어질 수 있다.
여기서 peer는 상하관계로 연결되는 것이 아닌 동등한 권한으로 연결된다는 것으로 생각하면 된다.
4. 패킷 교환 네트워크에서의 지연, 손실, 처리율
4.1 패킷 교환 지연 개요
패킷 교환을 할 때 지연이 생기는 것들로는 아래 네 가지가 존재한다.
- 노드 처리 지연(nodal processing delay): 패킷 헤더를 계산하고 그 패킷을 어디로 보낼지 결정하는 시간
- 큐잉 지연(queuing delay): 큐에 저장되어 링크로 전송되기까지 기다리는 시간
- 전송 지연(transmission delay): 라우터가 패킷을 링크로 밀어내는 시간
- 전파 지연(propagation delay): 링크의 처음부터 새로운 라우터로 가는데 걸리는 시간
4.2 전송 지연과 전파 지연 비교 예시
100km마다 요금계산소가 있는 고속도로를 가정하자. 이때 요금계산소(toll booth)는 라우터, 요금계산소 사이는 링크로 생각할 수 있다
차가 시속 100km로 고속도로를 달린다고 가정하고, 10대의 차가 일정한 순서대로 줄을 맞춰 달린다고 하자
각 요금계산소는 12초마다 한 대의 차를 서비스(전송)한다고 가정한다.
전송 지연 = 요금 계산소가 전체 자동차를 밀어내는데 걸리는 시간은 2분이 걸린다. (10대 * 12초 = 120초)
전파 지연 = 시속 100km로 달리므로 1시간이 걸린다.
만약 차가 시속 1,000km이고, 요금계산소는 1분에 1대를 처리한다고 가정하자
전송 지연 = 10분
전파 지연 = 6분
4.3 큐잉 지연과 패킷 손실
L = 패킷의 길이
a = 패킷이 큐에 도착하는 평균 개수
R = 전송률
이라고 변수를 설정하면 R은 실제로 라우터가 보낼 수 있는 최대 데이터 양이라고 보면 된다.
그런데 여기서는 L * a만큼의 데이터를 전송하라고 하니 그 값이 커지면 큐에 쌓이는 패킷이 많아져서 큐잉 지연이 일어나게 된다.
그래서 우리는 트래픽 강도(La / R)을 1보다 작게 시스템을 설계해야한다.
4.4 처리율
성능을 측정하는 것으로 단위 시간동안 송신자에서 수신자로 이동하는 데이터의 양이다.
이때 링크의 용량인 R[s]와 R[c]의 값이 서로 다를 경우가 존재하는데, 이때는 작은 값을 파악해서 그 값만큼 링크에 데이터를 보내야 한다. 그래야 병목 현상이 생기지 않아 성능이 나빠질 일이 없다.
5. 프로토콜 계층
5.1 인터넷 프로토콜 스택
1) 애플리케이션 계층
- 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳이다. (ex. HTTP, SMTP, FTP)
- 애플리케이션 계층의 패킷을 메시지라고 부른다.
2) 트랜스포트 계층
- 클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송하는 서비스를 제공한다. (ex. TCP, UDP)
- 트랜스포트 계층의 패킷을 세그먼트라고 부른다.
3) 네트워크 계층
- 한 호스트에서 다른 호스트로 데이터그램을 라우팅한다. (ex. IP)
- 네트워크 계층의 패킷을 데이터그램이라고 부른다.
4) 링크 계층
- 데이터그램을 경로상의 다음 노드에 전달한다. (ex. 이더넷, 와이파이)
- 링크 계층의 패킷을 프레임이라고 부른다.
5) 물리 계층
- 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 역할을 한다.
5.2 ISO/OSI 참조 모델
1) 프레젠테이션 계층: 통신하는 애플리케이션들이 교환되는 데이터의 의미를 해석하도록 하는 서비스를 제공함
2) 세션 계층: 통신하는 데이터의 변화를 감지하고, 복구함
최초의 표준 참조 모델이다. 현재는 5계층이 표준 모델이다.
5.3 캡슐화
source → destination 과정
1) application → link로 가면서 헤더를 하나씩 붙이고 physical 계층으로 이동한다.
2) 스위치에서 link 계층까지만 헤더를 읽어서 어디로 갈지 결정한다.
3) 라우터에서는 network 계층까지 헤더를 읽어서 어디로 갈지 결정한다.
4) destination에서 역캡슐화를 진행하여 메시지를 받는다.
반응형'공부 > 컴퓨터 네트워크' 카테고리의 다른 글
6. 혼잡 제어 (0) 2022.05.24 5. 파이프라인 프로토콜, TCP (0) 2022.05.24 4. 트랜스포트 계층 (0) 2022.05.23 3. e-mail, DNS (0) 2022.05.18 2. 애플리케이션 계층 (0) 2022.05.17