정규 회의록
일시 : 2022.12.02 15:00
범위 : 네트워크 7~9강
강의 : 이석복 교수님 컴퓨터네트워크 강의
활동 : github에 올린 내용 정리본 읽고 공부한 내용에 대해 발표 및 질의응답
정리 : https://github.com/GDSC-Ewha-4th/Study-CS.git
2. 애플리케이션 계층
TCP
reliable data transfer - pipeline 방식 사용
feedback을 통해 loss를 파악하고 재전송
Flow Control
sender가 receiver의 용량을 고려해서 segment를 전달하는 방식
receiver window(RWND): receiver buffer에 남아있는 빈 공간
RWND를 헤더에 담아서 알려줌 - 오버플로우 발생 x
receiver buffer에 자리가 없으면 sender는 계속해서 작은 데이터를 보내고 feedback을 받으면서 자리가 생기는지 확인
TCP 3-way Handshake
2-way handshake - 보내는 쪽은 데이터가 잘 전송되었는지 확인이 가능하지만 받는 쪽은 확인할 수 없음
TCP SYN - SYNbit = 1
SYN/ACK - 헤더의 SYNbit, ACKbit = 1
ACK - ACKbit = 1
연결 종료 - FINbit = 1
timed wait
클라이언트에서 ack을 보내고 close 했지만 loss가 발생하면 server에서 ack을 받지 못해 계속 기다리게 되기 때문에 약간의 시간을 두고 buffer close
Principles of Congestion Control
TCP에서 segment loss가 일어날 경우 데이터 재전송
- Network-assisted congestion control
- 라우터에서 현재 네트워크 상황 피드백 - 현실적으로 불가능
- End-end congestion control
- TCP를 통해 segment를 보냈을 때 반응으로 네트워크 상황 판단
TCP congestion control
congestion control 과정은 3 main phases로 구성됨
- Slow Start: 병목 현상을 막기 위해 0부터 시작해서 빠르게(지수적) 증가
- Additive increase: threshold(임계점)를 만나면(수용량에 가까워지고 있음) 천천히 증가
- Multiplicative decrease: 병목현상이 발생하면 절반으로 줄임
- timeout을 통해 loss를 감지하면 slow start로 돌아감
- duplicated ACK을 통해 Error를 감지하면 절반으로 줄임
MSS(Maximum Segment Size)
window size(buffer)를 1MSS부터 시작해서 증가/감소
TCP Fairness
네트워크를 먼저 사용하고 있던 사람이 처음에는 더 높은 속도를 가질 수 있음
후발주자가 들어오면서 loss가 발생하면 Multiplicative decrease를 통해 모두가 속도를 절반으로 감소시킴 → 계속 반복하며 공평해짐
TCP 각각에게는 공평하지만 사용자 단위로 TCP Connection을 많이 가지고 있는 사용자에게 유리함
4. 네트워크 계층
Router
- forwarding: 들어온 패킷의 목적지 주소와 포워딩 테이블의 엔트리를 매칭시켜서 그 엔트리에 해당하는 링크로 전달
- routing: 포워딩 테이블을 만들어주는 역할을 담당
라우터는 오직 들어온 패킷을 라우팅 알고리즘에 따라 다음 라우터로 전달하는 역할만을 담당
IP Datagram Format
- ver: IP 프로토콜의 버전, 현재는 IPv4 사용
- length: 패킷의 총 길이
- source IP address, destination IP address: 메시지를 생성해서 보내는 사람의 IP 주소, 받는 사람의 IP 주소
- time to live: 처음에 값을 주고 하나의 라우터를 지날 때마다 -1, 0이 되면 해당 패킷 사라짐
- upper layer: TCP인지 UDP인지(상위 레이어의 정보)
- data 부분에는 TCP 혹은 UDP 세그먼트가 들어감
IP 헤더 - 20바이트, TCP 헤더 - 20바이트 → 총 40바이트의 오버헤드 발생
IPv4 Addressing
NIC(Network Interface)를 지칭하는 주소
32비트 주소체계, 계층화
네트워크 아이디(prefix, 서브넷 아이디)와 호스트 아이디로 나뉨
Subnet Mask: 어디까지가 네트워크 ID인지, 어디까지가 Host ID인지 나타냄
ex) 255.255.255.0에서 앞의 3개가 네트워크 아이디, 뒤의 1개가 호스트
Subnets
network id = prefix = IP address = subnet
같은 subnet ID(prefix)를 가진 디바이스의 집합
같은 서브넷에서는 라우터를 거치지 않고 직접적으로 접근이 가능
라우터는 여러 개의 서브넷에 속함
'4-1기 스터디 > CS 기초' 카테고리의 다른 글
[CS 기초 스터디] 9주차 회의록 (0) | 2023.01.06 |
---|---|
[CS 기초 스터디] 8주차 회의록 (0) | 2023.01.06 |
[CS 기초 스터디] 6주차 회의록 (0) | 2023.01.05 |
[CS 기초 스터디] 5주차 회의록 (1) | 2023.01.05 |
[CS 기초 스터디] 4주차 회의록 (0) | 2022.12.10 |
댓글