R1:运输层协议的种类,4字节的端口号
传输层的协议回忆
信笺传递的协议
源端口号和目的端口号的形成说明不是固定的
端口号的识别说明
第三章-课本中的一些问题-直到3.3节之前
P121-发送端:运输层,将报文(即应用程序进程接收到的报文)转换为运输层分组(也就是将报文划分为较小的块,然后在每块上加上一个运输层首部以生成运输层报文段)
发送端:网络层,将其封装成网络层分组(即数据报)并向目的地发送(网络层只看网络层字段,不关心运输端字段长什么样)
接收端:网络层从数据报(也就是已经在上一个主机的网络层封装好的报文段)进行提取,然后向上运输给运输层
接收端:运输层,处理报文段(不再是网络层的数据报),转化为可以被应用进程接收的数据
P123-即使底层网络协议不能在网络层提供相应的服务(即后面的不可靠信道),运输层协议也能提供某些服务(rdt)——作为可靠的数据传输服务
Q1:路由器与端系统(主机)有什么差别?路由器在具体的链路中起到什么作用
这两个都是网络层的东西——端系统不一定,因为运输层协议只存在于端系统内部(区分内部和边缘的区别)
Q2:报文段,分组(数据报)在其中主要起到什么作用?
首先要明确几个概念:报文,报文段,分组
报文是应用层中的应用进程中的东西
进入传输层中,被划分成报文段
然后再进入网络层,被打包成分组(数据报)
Q3:应用层,运输层,网络层,数据链路层,物理层
Q4:运输层和网络层的协议分别有哪些?
运输层的协议:TCP,UDP
应用层的协议:HTTP,
计算机网络自学笔记:应用层协议的原理 - 知乎
这篇有关于第二章应用层总结的知识点还是蛮到位的
Q5:TCP/UDP和可靠数据传输协议又是什么关系?
心里要明白可靠数据传输协议(rdt等)的产生是由于底层网络协议(信道不可靠)不足以支撑运输层协议而衍生的一种保证
网络层协议的名字叫做IP,IP地址的服务模型是尽力而为之交付服务,与运输层的协议UDP一样是一个不可靠的协议
在其上一层运输层中的TCP可靠在于,相比于UDP为应用程序提供了几种附加服务,1、提供可靠数据传输(后面的各种rdt模式,只是一种迭代的服务,但还没有到协议的程度) 2、拥塞控制(防止一条TCP连接过多流量导致淹没主机之间的链路和交换设备)
Q6:路由器等价于网络层嘛?P123-“中间路由器既不处理,也不识别运输层加在应用层报文的任何信息
Q7:套接字socket是什么?身处于什么地方?
一个进程可以有多个套接字
那么套接字的分配是相对于每个进程,还是每次发布的报文段都会配备一个套接字呢?
套接字跟IP地址,端口号又有什么区别?
应用程序运行在生成套接字时,必须确定运输层协议是采用TCP还是UDP
建议重新刷一遍P105的套接字
书上关于套接字socket的解释其实蛮明确的了:
套接字具有唯一标识符(就是adj标识,不是另外的专业术语)
每个报文段有特殊字段来指示该报文段所要交付到的套接字
包括源端口号字段和目的端口号字段
其中,有关客户端和服务器到底是采用RFC协议标注的公开协议,还是非公开协议的专用的程序开发(其他开发者无法交互)分为周知端口号和非周知端口号
Q1:套接字究竟是以进程为单位,还是以每次发送的报文段为单位,其所包装或者独有的到底是什么?
区分好进程和线程的区别
P129的话有点迷
“在端口80上运行一个Apache Web 服务器。
显示了一台web服务器为每条连接生成一个新进程,每个进程都有自己的套接字socket,这些套接字可以收到HTTP请求和发送HTTP响应
然而套接字与进程之间并非一一对应的关系
当今高性能的Web服务器只使用一个进程,但是每个新的用户连接时,会创建一个具有新连接套接字的新线程
P128的TCP客户-服务器还不太懂?
补充:若客户与服务器端使用【持续HTTP】,则两端只需要同一个服务器套接字交换HTTP报文
若客户与服务器使用非持续HTTP,则对每一对请求/响应都创建一个新的TCP连接并在随后关闭,因此对每一对请求/响应创建一个新的套接字并在随后关闭
建议回溯到2.1节寻找答案,一些基本的概念没有梳理清楚
Q2:服务器在端口上,还是端口在服务器内部?
服务器,主机-IP地址
端口号
Q3:进程和程序的区别,和线程的区别?
通过上述概念,大概能感觉到
套接字是跟进程配套的,但是一个进程里边可以有很多次报文(也就是常说的HTTP响应和交互的情况发生)
注意:课本P57
P2P应用结构中,下载文件的等待方为客户,而上传文件的对等方为服务器,也是有客户和服务器的概念的
注意:P58课本
应用程序开发者可以控制套接字在应用层端的一切,但是对于运输层却几乎没有控制权
应用程序开发者的权限只有1、选择运输层协议2、设定几个运输层的参数



