해당 내용은 kocw 한양대학교 컴퓨터 네트워크 강의를 정리한 내용입니다.
강의 링크 - http://www.kocw.net/home/search/kemView.do?kemId=1169634&ar=relateCourse
1) network
네트워크는 기본적으로 host(edge)와 router(core)로 연결되어 있다.
네트워크 edge에는 우리가 사용하는 Laptop, 노트북 그리고 서버 컴퓨터 등이 있다.
core에는 router들이 있어서 edge들끼리 (host와 server)를 인터넷으로 연결해 주는 역할을 한다.
edge와 core는 링크로 연결되어있고, 링크로는 유선 링크(인터넷 케이블) 또는, 무선 링크(wifi)로 연결되어 있다.
network edge
network edge에는 host와 server가 있다.
- host : client, web browser, email....
- server: host의 효청을 처리해주는 시스템, host에게서 요청이 오도록 기다린다.
두 가지 데이터 통신 서비스
연결지향통신 (connect oriented service), 비연결 통신(connectless service)
1. 연결지향통신 (TCP)이 사용자에게 제공해 주는 것
- 사용자에게 신뢰성(reliable), 보낸 메시지의 순서를 유지 (in-order byte-stream)하면서 데이터를 보내준다.
- Flow control (흐름 제어)
- sender의 속도를 receiver의 처리속도에 맞게 데이터를 보내는 흐름을 제어한다.
- congestion control (혼잡 제어)
- sender, receiver사이의 network처리속도에 맞춰서 데이터를 보낸다.
2. 비연결 통신 (UDP)
- connect less
- no flow control
- no congestion control
- 즉 그냥 보내기만 한다.
TCP vs UDP
- TCP : 보낼 때 비용(computer resource)이 크기 때문에 신뢰성이 필요할 때 사용된다.
- UDP : 비용이 크지 않기 때문에 그냥 보내기만 할 때 (음성전화)에 사용된다.
현실과 비교하면 TCP는 등기우편, UDP는 일반우편에 비유된다.
Protocol
http, smtp, tcp, udp 모두 마지막에 p가 붙고 이는 Protocol (프로토콜)이라는 뜻이다.
Protocol이란 - 정말 중요한 데이터를 받기 전 수행하는 준비동작 (전화통화에서 여보세요 와 같은 것)
=> 같은 protocol이어야지 통신이 된다.
2) Network Core
라우터들의 집합이다.
router가 message를 어떻게 전송하는가?
- circuit switching
- 출발지에서 목적지까지 경로를 확실히 정해두고(약속해두고) 해당 경로로만 데이터를 보내는 방식 (옛날 유선전화)
- packet switching (Internet)
- 유저가 보내는 메시지를 packet단위로 들어온 순서대로 보낸다.
현재 인터넷은 packet switching방식을 이용하는데, 왜 packet switching방식을 이용하는가?
>> 인터넷은 항상 packet(Data)을 주고받는 것이 아니라서 packet switching방식이 더 좋다.
그러나, packet switching도 사용자가 몰리게 되면 문제가 생긴다.
Packet Swtiching으로 생기는 문제들 (Delay, loss...)
-
Processing delay
- 내가 보낼 Packet이 문제가 없는지 검사하는데 걸리는 시간, packet을 확인하고 보낼 곳을 확인하는데 걸리는 시간.
-
queueing delay
- packet이 router에 많이 들어오면 packet을 queue에 임시로 저장한다.
- 그래서 내가 보낼 packet이 queue에 대기하는데 걸리는 시간이 queueing delay이다.
- router에서 나가는 packet보다 들어오는 packet이 더 많을 때 queueing delay가 발생한다.
-
transmission delay
- packet의 첫 번째 bit가 나가고, 마지막 bit가 라우터에서 나갈 때까지 걸리는 시간이다.
- 패킷의 길이 (bits) / 링크의 bandwidth (bps)의 값이다.
-
propagation delay
- 다음 라우터까지 가는데 걸리는 시간이다.
- packet은 빛의 속도로 전달되기 때문에, delay time = 다음 라우터까지의 물리적 케이블의 길이 / 빛의 속도
위 4가지 Delay 해결방법
- Processing delay : 더 좋은 router로 교체한다.
- transmission delay : bandwidth를 늘린다.
- propagation delay : 빛의 속도는 조절 가능한 영역이 아니라 불가능
- queueing delay
- 들어오는 요청(packet)을 줄이면 되는데, packet은 사용자에 의해 들어오기 때문에 조절 불가능하다.
- queue크기 이상으로 packet이 들어오게 되면 packet이 유실된다.
Packet의 유실에 대한 대처
만약 A가 B에게 packet을 보내는데, 그 사이에는 일직선으로 여러 개의 라우터들이 있다.
packet을 보내는데, 하나의 라우터의 queue가 full이면 packet이 유실된다.
하지만 A와 B는 tcp통신으로 packet을 전송하는데, TCP는 reliable 한 전송을 지원한다.
이에 대한 대처는 packet을 재전송하는 것이다.
이때 A가 재전송을 하는지, 유실된 router가 재전송을 할까?
=> A가 재전송한다. router가 재전송하면 router는 packet이 잘 갔는지 확인도 해야 돼서 연산 비용이 늘어나기 때문에, 그냥 router는 최대한 단순작업만 하도록 만들어졌기 때문이다.
'컴퓨터 네트워크' 카테고리의 다른 글
| (컴퓨터네트워크) 6. TCP Header (0) | 2020.05.16 |
|---|---|
| (컴퓨터 네트워크) 5. Pipeline protocol (0) | 2020.05.16 |
| (컴퓨터 네트워크) 4. Reliable Data Transfer (0) | 2020.05.11 |
| (컴퓨터 네트워크) 3. Socket Programming (0) | 2020.04.27 |
| (컴퓨터 네트워크) 2. Application (0) | 2020.04.10 |