传输层的位置

不同终端上的进程如何通信 -- 套接字Socket

传输层和网络层的关系

传输层依赖网络层服务,并扩展网络层服务

传输层提供的服务

进程标识

  • 主机地址
  • 主机上与该进程关联的端口号
    • 端口号(port number):端口号被用来区分同一个主机上的不同进程

应用编程接口:socket API

传输层复用和分用

  • 传输层基本服务:将主机间交付扩展到进程间交付,通过复用和分用实现
    • (发送端)复用:传输层从多个套接字收集数据,交给网络层发送
    • (接收端)分用:传输层将从网络层收到的数据,交付给正确的套接字

套接字的标识和端口号

套接字端口号的分配

客户端自动分配:

服务器指定端口号创建套接字:

UDP分用

TCP服务器使用的套接字

  • 一个TCP服务器为了同时服务很多个客户,使用两种套接字

    • 监听套接字

    • 连接套接字

UDP

UDP报文结构

校验和

为什么需要UDP

TCP

概述

TCP报文段结构

发送序号和确认序号的含义

TCP可靠数据传输

TCP发送端

重传场景

TCP接收端

TCP流量控制

TCP接收端

TCP连接管理

建立TCP连接

TCP三次握手建立连接

两次握手建立连接

两次握手失败的例子

TCP是三次握手建立连接

关闭TCP连接