본문 바로가기

분류 전체보기69

[네트워크] Chap 3.5 - TCP reliable data transfer TCP reliable data transferTCP는 unreliable한 IP의 위에서, rdt를 해준다.- pipelining을 통해, out-of-order를 탐지 가능 → in-order-delivery가 가능- cumulative acks- single retransmission timer per connection RetransmissionTCP는 loss 등 뭔가 문제가 발생했을 경우 재전송을 한다.재전송은 크게① timeout이 발생한 경우② 3 duplicate ACK을 받은 경우 (timeout 이전에 빨리 재전송하는 방법이다)2가지 상황일때 시작된다.TCP sender events:1. data received from app(NextSeqNumber - SendBase) = num.. 2024. 11. 23.
[네트워크] Chap 3.4 - TCP segment structure TCP overviewpoint-to-point one sender, one receiverTCP는 1:1 통신만 지원한다. (unicast만 지원하며, multicast는 불가능하다) connection-orientedTCP는 data 전송 전에 handshaking 과정을 거치면서 control msg를 교환한다. pipeliningwindow size (w) 내에 있는 패킷들이 ACK 없이도 전송된다. full duplex같은 connection 안에서 bi-directional data flow가 가능하다. 즉 sender와 receiver의 역할이 고정되어 있지 않고, 양쪽 방향으로 데이터 전송이 가능하다. flow control sender will not overwhelm receiver즉 .. 2024. 11. 22.
[네트워크] Chap 3.3 - Reliable data transfer (rdt) Principles of reliable data transfer (rdt)Transport layer에서는 reliable하게 data를 주고받는다.하지만, 그 아래 계층에서는 신뢰성이 보장되지 않는다.  application layer에서 데이터를 transport layer로 보내면, transport layer protocol을 지나 Network layer를 통해 데이터가 전송된다. 이 데이터를 receiver 측에서 받고, transpor 계층으로 올려보내고 최종적으로 receiving process가 받는다. transport layer에서 reliable하게 data를 전송해도, 아래 network layer에서의 data 전송은 unreliable하다. unreliable하다는건, 중간에.. 2024. 11. 21.
[네트워크] Chap 3.2 - Simple UDP, Internet checksum (TCP & UDP) UDP : User Datagram Protocol: connectionless → no connection set-up delay => 빠르다!: no handshaking between UDP sender, receiver: no dedicated socket for each connection: loss보다는 throughput에 민감한 application들에 쓰인다: UDP를 사용하는 것들 → rate sensitive(속도에 민감)한 streaming multimedia application, DNS, SNMP, HTTP/3 UDP socket ID = (Dst. IP addr., Dst. port#) when demuxingUDP datagram format [RFC768] 첫 줄은 TCP하.. 2024. 11. 20.
[네트워크] Chap 3.1 - Multiplexing & Demultiplexing Transport Layer Actions왼쪽이 data를 받는 Receiverdls client이고, 오른쪽이 data를 보내는 Sender인 server이다.Transport Layer의 sender는 application으로부터 msg를 받아서 헤더 T_h를 붙인다.이 헤더에는 양쪽에 있는 processor, 즉 양쪽의 socket을 찾기 위한 정보가 들어가 있다.자신의 port number를 source field에 넣고, client의 port number를 destination field에 넣는다.이렇게 헤더를 붙인 segment를 바로 밑 계층인 network layer로 보낸다.   헤더 T_h는 앞서 설명했듯이 sender가 만든 것이다. Transport 계층의 receiver는 seg.. 2024. 11. 19.
[네트워크] Chap 2.8 - Socket programming (UDP & TCP) Socket programmingsocket : internet application 개발 시 Transport layer (4계층)이 제공하는 서비스를 이용할 수 있는 API  두가지 socket type이 있음! UDPunreliable datagram(다른 말로 best effort) : simple & fastfire & forget : UDP는 보내면 잊어버린다  TCPreliable (rdt → no-loss & in-order) : TCP는 Reliable Data Transfer (rdt)를 한다. (byte단위)byte stream-oriented (TCP가 자기가 원하는 크기대로 잘라서 보냄)=> TCP는 rdt를 하는데, byte 단위로 함. 즉 no-loss & in-order로 보.. 2024. 11. 18.