본문 바로가기

⭐ Group_Study/Networking33

[5주차] IP: Internet Protocol IP: Internet Protocol IP datagram(패킷)의 포맷 ✔ length 패킷의 길이 ✔ time to live 라우터를 지날 때마다 1씩 감소하다 0이 되면 패킷이 사라진다 라우팅 테이블에 오류가 생겨서 루프가 도는 경우 방지 ✔ upper layer 상위 레이어 (transport layer)의 전송 방식(tcp / udp) ✔ source/destination IP address 출발지/목적지의 IP주소 IP에서 가장 중요한 필드! ✔ TCP의 헤더 20 bytes + IP의 헤더 20 bytes ✔ 패킷은 기본적으로 40바이트의 헤더를 가지고 데이터는 그 나머지이다. ✔ 그런데 상당수의 패킷은 40바이트밖에 되지 않는데 이는 ACK 패킷이다! IP Address(IP v4) ✔ .. 2022. 10. 21.
[5주차] Network Layer : Intro Network Layer: Intro Network Layer ✔ source부터 destination까지 패킷을 어떻게 잘 보낼 것인가 -> Router! Two key network-layer functions Forwarding ✔ 들어온 패킷의 목적지 주소와, Forwarding Table의 엔트리를 매칭해서 엔트리에 해당하는 링크로 보내는 작업 Routing ✔ Routing algorithm을 활용해 forwarding table을 만드는 작업 Forwarding Table ✔ IP주소가 워낙 많다보니 특정 IP주소가 아니라, IP 주소 범위로 테이블을 정의한다. Longest Prefix Matching ✔ 가장 길게 일치하는 엔트리와 매칭 시킨다. 2022. 10. 20.
[4주차] TCP: Congestion Control TCP: Congestion Control Congestion Control의 3 단계 Slow Start ✔ start는 slow하나 증가는 exponentional Additive Increase ✔ Threshold에 도달하면 linear하게 증가 Multiplicative Decrease ✔ PacketLoss 탐지 시 절반으로 줄여서 다시 늘림 왜 늘릴 땐 linear하게 늘리다가 줄일 떄 절반으로 줄일까? ✔ 네트워크는 공유재이기 때문에 네트워크가 넘쳤을 때 크게 줄여야 해결할 수 있다. MSS(Max Segment Size) ✔ 전송양을 늘릴 때 MSS 단위로 늘려나간다. 그림으로 보는 Congestion Control Congestion Control의 특징 전송 속도 ✔ 전송 속도는 결국.. 2022. 10. 15.
[4주차] TCP: Connection Management TCP: Connection Management 3 - way handshake (Connection Establish) ✔ 세그먼트를 주고 받기 전에 sender와 receiver 간의 연결(connect) 해야 한다. ✔ 서로의 seq#, buffer 상태 등등... client가 server한테 tcp connection 연결 요청을 보낸다. ✔ tcp segment를 SYNbit = 1로 해서 보낸다.(평소에는 0) ✔ client의 첫 seq#를 보낸다. server는 client한테 SYNACK를 보낸다. ✔ client가 보내온 seq#+1을 ACKnum으로 한다. ✔ server의 첫 seq#를 보낸다. client는 SYNACK에 대한 ACK를 보낸다. ✔ SYNbit는 다시 0이 된다... 2022. 10. 14.
[4주차] TCP: Flow Control TCP: Flow Control Flow Control이란? ✔ Sender가 Receiver한테 데이터를 보낼 때, receiver의 수용 능력(buffer)에 맞게 보내는 것 ✔ receiver driven ✔ 단순하지만 매우 중요한 기능 어떻게 buffer 상태를 전달해줄까? ✔ receiver는 TCP 세그먼트의 header의 receiver buffer 필드에 담아서 보내준다. receiver buffer가 0일 경우...? ✔ 만약 극단적으로 receiver가 active하게 보내는 데이터가 없는 케이스라면 sender는 처음 receiver buffer 0을 받고 계속 대기하게 되는 문제가 발생한다. ✔ 따라서 sender는 주기적으로 data가 0 혹은 1bit인 세그먼트를 전송해서 ack.. 2022. 10. 13.
[3주차] TCP: Reliable Data Transfer TCP: Reliable Data Transfer TCP RDT의 특징 ✔ Piplined ✔ Cumulative Acks ✔ Single Timer (GBN과의 차이점: 해당 세그먼트만 재전송) ✔ ... Retransmisson scenarios 1번 사례 ✔ Sender: 92 - 99 데이터 전송, Receiver: ack(100) loss ✔ timeout 발생 ✔ Sender: 92 -99 데이터 재전송, Receiver: ack(100) 재전송 ✔ Sender: sendbase = 100 2번 사례 ✔ Sender: 92 - 99 데이터 전송, 100 - 119 데이터 전송, Receiver: ack(100), ack(120) delayed ✔ timeout 발생 ✔ Sender: 92 - .. 2022. 10. 6.