Recap
How do loss and delay occur
- router에서 처리할 수 있는 용량보다 많이 들어오면 문제 발생
- 임시공간에 packet 두는 시간 -> delay
- Processing delay
packet 검사, 목적지 확인
- Queueing delay
buffer, queue : 나가는 속도보다 들어오는 속도가 높을 경우 잠시 저장하기 위해 사용
queue에서 기다리는 시간
- Transmission delay
queue에서 나갈때 첫번째 bit가 나가는 순간부터 마지막 bit가 나갈때까지 걸리는 시간
packet length(bits)/link bandwidth(bps)
- Propagation delay
마지막 비트가 link에 올라와서 다음 router에 도달할 때까지 걸리는 시간
- queue 공간이 차 들어가지 못한채 drop되는 packet -> loss
HTTP
- request, response로 message가 이루어짐
- 서버는 기억하는게 없어서 stateless protocol
- TCP 사용 -> reliable한 전송
- non-persistent HTTP
TCP connection을 만든 후 끊고 다시 만들어서 사용
- persistent HTTP
TCP connection을 만든 후 끊지 않고 유지하여 재사용
UDP
- field가 4개 -> 간단
- error detection, multiplexing/demultiplexing 해줌
- DNS가 UDP 사용
Reliable data transfer
- packet error -> error detection, feedback, retransmisson, sequence number로 해결
- packet loss -> timeout
Pipelined protocols
- 한번에 여러개의 packet을 보내는 것
- Go-Back-N, selective repeat 방식 존재
Go-Back-N
- 장점: timer 1개 -> 동작이 간편
- 단점: 유실된 packet은 1개인데 나머지들도 다시 재전송해야 해서 overhead가 크다
Selective repeat
- 장점: loss된 packet들만 재전송
- 단점: 모든 packet별로 timer를 가지고 있어서 구현이 복잡
TCP
- point-to-point
- reliable, in-order byte stream
- pipelined
- full duplex data
- send&receiver buffers
- flow controlled
- congestion control
Fast retransmit
- timeout 전 packet 유실 여부 아는 방법: 중복 ACK 번호를 3번(총 4번) 받으면 유실로 판단
-> timer 터지기 전 미리 재전송
TCP Congestion control
- network 상황에 맞게 보내주는 것
- slow start, additive increase, multiplicative decrease
TCP Tahoe vs TCP Reno
TCP tahoe는 timeout, 3duplicated ACK 발생 시 둘 다 다시 slow start로 시작
TCP Reno는 3dulplicated ACK 경우에는 window size를 절반으로만 줄이고 linear하게 증가
Chapter 4. Network layer
IP protocol: packet을 ip에 담아서 보내면 router가 받아서 알맞는 방향으로 보내줌
Network layer
- source부터 destination까지 packet을 어떤 경로로 보낼 것인가 -> router 등장
Router의 역할

1. forwarding
- packet의 목적지가 header에 적혀 있음
- 목적지를 보고, 목적지로 향하는 link를 판단
-> router 안의 특정 목적지로 향하기 위한 interface 정보가 적혀있는 표 확인
- 이 표 이름이 forwarding table
- fowarding: packet 목적지 보고, 표 보고 알맞는 방향으로 보내는 것
2. routing
- routing: routing algorithm으로 forwarding table을 만들어줌
Data forwarding table
- 수많은 주소가 존재하기 때문에 forwarding table -> 주소 범위로 관리
Longest prefix matching
- Longest prefix matching: 범위를 적어놓으므로 여러 곳에 매칭될 수 있음
-> 가장 길게 일치하는 주소로 배정