03-1
💡 Transport Services and Protocols
- Transport protocols run in end systems
여기서 end systems 란 host를 의미한다.
- sender side
application messages를 segment 단위로 분해해주고,
network layer로 보내준다
- receiver side
sender side에서 분해된 segment들을 message로 조각난 것들을 붙인 후에 application layer로 보내준다
💡 Transport layer Actions
- Sender side
- passed an application layer message
- determines segment header fields values
- create segment
- passes segment to IP
- Receiver side
- receives segment from IP
- check header values
- extracts application layer message
application layer message를 추출한다
- demultiplexes message up to application via socket
소켓을 통해 application까지 message를 demultiplex 해준다
💡 Basic Transport Features
📌 UDP와 TCP가 공통으로 갖는 특징이다.
1. Demultuplexing
IP를 이용해 host를 알 수 있고 80번 port number를 이용해서 웹 서버에 접근한다.
- Error detection : checksums
checksums를 이용하여 error detect를 한다.
💡 TCP vs UDP
TCP
- reliable, in order delivery
- congestion control, flow control
- connection setup
UDP
- unreliable, unordered delivery
- no connection, no congestion control, no flow control
TCP
reliable, in order delivery
TCP는 receiver가 정보를 잘 전달 받으면 받았다고 sender에게 ACK을 보낸다.
sender는 ACK이 오지 않으면 receiver가 정보를 받지 못했다고 생각하고 정보를 재전송한다.
그렇기 때문에 TCP is reliable !
congestion control, flow control
-
flow control
sender가 powerful (ex database center)일 경우 한 번에 대량의 정보를 보낼 수 있다.
하지만 receiver가 대량의 정보를 한 번에 받아들일 수 없는 경우가 있다.
TCP sender가 receiver의 buffer space 를 확인하여 receiver가 받을 수 있는 만큼 조절해서 보내줘야한다.
-
congestion control
데이터가 나가는 양 < 들어오는 양
이 되면 queueing delay가 발생하고 이게 지속적으로 발생하면 loss가 일어난다.
따라서 TCP sender가 조절헤줘야 한다.
connection setup
TCP는 connection을 맺어서 안정적이다.
UDP
unreliable, unordered delivery
UDP는 receiver가 정보를 잘 전달받았는지 관심없다.
그냥 보내기만한다. 대신 빠르다.
no connection, no congestion control, no flow control
위 TCP와 달리 이런 조절 기능이 없다.
그냥 빠르게 보내기만 한다.