计算机网络第五章(1)——传输层(概念 + UDP)
记住传输层往上的层,都是进程和进程之间通信!!!!
一、端口号
就4点:
- 1、各个端口号都是独立的区分各个进程的,TCP、UDP的端口也是相互独立的
- 同一主机内的进程不可以使用相同的端口,不同主机之间可以使用相同的端口
- (所以如果有相同的端口进程,比如 “浏览器进程8080” 使用的是TCP协议、“QQ音乐进程8080” 使用的是UDP,因为协议不同,协议的端口也就不同,所以不会导致端口冲突)
- 2、两进程通信要指名的信息:(前面第四章DHCP协议我记得也讲过)
- 使用的是TCP还是UDP协议
- 自己进程的端口号
- 接收方的端口号、IP地址
- 3、【Socket套接字 = {IP地址: 端口号}】是用来标识一个主机的一个进程的
- 类似C语言一个结构体(或者JAVA的对象),不用每次发信息都单独指名上面那3条基本信息
- 4、【0 ~ 1023】是熟知端口号,不给你私人用
二、传输层功能
其实这一块我之前在OSI、TCP/IP模型介绍的时候也讲过,传输层的概念有几个很明显的特点:
- 1、端到端传输:也就是进程和进程之间通信
- 2、复用和分用:也叫“分段和重组”:
- 在发送方时,传输层将应用层的数据分段成较小的块,以适应网络传输的需要
- 在接收端,将数据链路层的分组信息重新组装成报文段形式的原始数据。
- 3、其他的还有差错控制。。。等等,后续会一步一步详细解释
记住这个架构就行,尤其记住【TCP】、【UDP】的区别
- 何为有连接、无连接?(类似数据链路层的可靠传输)
- 何为可靠传输、不可靠传输?(类似数据链路层的可靠传输)
三、UDP数据报
下面框框里的4点:
除了第4点【UDP有多播、单播】,【TCP只有单播】
其他点通通是【UCP没有】、【TCP有】,就这么结束了,记都不用记,选择题看到【有】就选TCP、【没有】选UDP
(不过还是稍微记一下,UDP首部8B、TCP是20~60B)
总结(顺便记忆UDP首部格式)
四、UDP检验
相比之前的数据链路层哪些差错控制,这个UDP已经很简单了,兄弟们来看一下
规则就是:
- 要检验的数据,每【16bit】分成一份
- 然后每两份【16bit】数据相加,的到的【结果取反】,作为【校验和】
- 最后【整个数据】+【校验和】一起到达接收方,接收方将他们全部一起进行按位相加
- 如果结果是【全1】就是对的,UDP接收数据
- 如果结果不是【全1】就说明有错,直接丢弃!!
- 需要注意,不管数据多大,都是分成【16bit】一份
- 如果出现相加时,最高位还往前进一,就相当于溢出了,那就让这个1【加到结果最后一位】
UDP实际检验应用
发送方计算检验和流程
接收也是一样的流程,可以看一下