计算机基础:计算机网络-chapter5 运输层
一、运输层做什么事情,通过什么协议实现,
- 运输层做什么
为相互通信的应用提供逻辑通信
通过端口号来确定应用,提供端到端的服务;
- 为什么需要运输层,IP层不是就实现了传输数据吗
从IP层来说,是两台主机之间的通信,但是真正进行通信的实体是在主机中的进程,是这台主机中的一个进程和另一台主机中的一个进程在交换数据,既两台主机进行通信就是两台主机中的应用进程互相通信。
- 通过什么协议实现
TCP面向连接和UDP无连接
- 运输层的原理
主机中的进程,把信息交给IP层变成IP数据报,传输给目的主机后,将提取出来传递给目的进程。
可能是一对一,可能是一对多,可能是多对一,可能是多对多。这表明运输层有一个很重要的功能——复用multiplexing和分用demultiplexing
- 运输层的执行步骤
多个进程传输的数据复用,装上源端口和目的端口,将数据装进去,向下传到网络层,网络层传递到对应主机后,将数据取出来,将数据传到目的端口,将数据取出来,分发给各个进程。
二、为什么要设置端口,端口是什么,端口怎么设定
- 为什么要有端口
因为不同操作系统的应用进程的进程标识符不一样,所以TCP/IP体系需要规范进程的标志,并且能够通用。
解决办法就是运输层使用协议端口号protocol port number,通过将报文传输到目的主机中的某个端口(软件),然后TCP和UDP来搞事。
- 端口是什么
TCP/IP用16位的端口号来标志一个端口。为了标志本计算机应用层中的各个进程在运输层交互时的层间接口。
在不同的互联网中,相同的端口号时没有关联的。
- 端口怎么设定
- 端口在协议中的使用
TCP/IP的端口号,只具有本地意义。所以,两个计算机的进程要通信,不仅必须知道对方的IP,而且要知道对方的端口号。
- 端口的类别
服务器端使用的端口号
客户端使用的端口号
二、UDP和TCP的区别
UDP在传输钱不需要先建立连接。
TCP则需要提供面向连接的服务。
三、UDP用户数据报协议
- 特点
无连接的,尽最大努力交付,面向报文(给什么报文我就传什么报文),没有拥塞控制(允许拥塞时丢失数据),支持一对一,一对多,多对一和多对多的通信,首部开销小
- 实现了什么
只在IP的数据报服务之上增加了很少的功能:复用,分用,差错检测。
四、TCP的实现细节
- 特点:
面向连接的运输层协议,每一条TCP连接只能由两个端点,可靠交付,全双工通信,面向字节流
- TCP端点:
- 一个TCP连接有两个端点,端点也叫套接字,表示方法是socket=(IP地址:端口号)
- 每一条TCP连接唯一的被通信两端的两个端点所确定
- 同一个IP地址可以有多个不同的TCP连接,同一个端口号也可以再多个不同的TCP连接中
- 连续ARQ协议
- 分组按照序号发送
- 发送方维持发送窗口,窗口大小按照拥堵情况和接收方的接受窗口大小来商定
- 接收方累积确认,对按序到达的最后一个分组发送确认
- 三次握手
- 在建立连接时产生的
- 1.client请求server连接,发送syn(seq=x)
- 2.server回复syn(seq=y) ack (x+1)
- 3.client 确认+1,seq=x+1;ack=y+1
- 四次挥手
- 在释放连接时产生
- 1.A释放请求,开启计时器;
- 2.B回送确认ack,A收到后释放连接
- 3.B继续发送释放DR,启动定时器,A收到后回复ack
- 4.B收到后释放连接
- 四次挥手是为了杀死办断开的连接
- TCP的传输策略
- 发送序列号和数据
- 返回确认接收的序列号,和窗口大小
- 发送序列号和数据
- 返回确认接受的序列号,和窗口剩余大小(0)
- 返回确认接受的序列号,和窗口剩余大小(数据处理完毕,有空余的窗口)
- 发送序列号和数据
计算机基础:计算机网络-chapter5 运输层的更多相关文章
- Java学习之计算机基础(一)
阅读本文大概需要 4 分钟 想要开始学习Java开发,需要掌握一些必要的计算机基础.如果你是计算机专业的人或者已经学过类似的课程,可以跳过这篇文章的阅读.计算机基础课程有很多,小编在大学里学过的课程就 ...
- day01<计算机基础知识&Java语言基础>
计算机基础知识(计算机概述) 计算机基础知识(软件开发和计算机语言概述) 计算机基础知识(人机交互) 计算机基础知识(键盘功能键和快捷键) 计算机基础知识(如何打开DOS控制台) 计算机基础知识(常见 ...
- [Java 教程 00] 计算机基础
前言 我想,来到这的朋友肯定是想学习JAVA或者想要进入IT这个行业的.考虑到大家的基础可能不一样,有些人可能还是用着新买的电脑,为了让大家在后续的学习中更加顺畅.在学习一门全新的计算机语言之前,我需 ...
- 【java基础】01 计算机基础知识
一.计算机基础知识 1. 计算机 1. 什么是计算机? 计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设 ...
- Java学习1——计算机基础知识
本文包含了一些计算机基础知识:计算机组成:Windows常用快捷键:DOS常用命令:计算机语言发展史.
- 计算机基础--Java中int char byte的关系
计算机基础--Java中int char byte的关系 重要:一个汉字占用2byte,Java中用char(0-65535 Unicode16)型字符来存字(直接打印输出的话是字而非数字),当然要用 ...
- 计算机基础-Day1
计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...
- python计算机基础-Day1
计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...
- Python之旅_计算机基础入门
一.计算机基础 1.Python是编程语言 语言:一种事物与另一种事物沟通的介质. 编程语言:程序员与计算机沟通的介质. 什么是编程:程序员用编程语言把自己的逻辑思想下来,编程的结果就是一堆文件. 为 ...
随机推荐
- Python2基础
1.python 3.python函数 python的函数定义: 以def关键字定义一个函数: 参数放在小括号里面: 必须有return语句: 关键字参数: 即调用函数时传参顺序可以人为指定 默认参数 ...
- delphi 中出现dataset not in edit or insert mode的问题
self.ADOQuery2.Edit;self.ADOQuery2.First;while not self.ADOQuery2.Eof dobeginself.ADOQuery2.FieldByN ...
- C 语言-----字符串和输入输出函数
在C语言中,没有字符串类型,那它是怎么表示字符串呢? 由于字符串是一系列单个字符的组合,所以它用char 类型的数组来表示字符串,在数组中,一个数组元素存放一个char类型字符. ]; name 变量 ...
- bzoj2152-[国家集训队]聪聪可可
Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)--遇到这种问题,一般情况下石头剪刀布就好 ...
- Nginx 优先选择连接最少的上游服务器
详见陶辉87课 upstream test { server ; server ; least_conn ; zone backends 64k; }
- python3.7之12306抢票脚本实现
悲催的12306,彻底沦为各路抢票软件的服务提供方.元旦伊始,纯粹12306官网及APP抢票,愈一周的时间,仅到手一张凌晨3:55回家的站票.为远离脑残,无奈选择抢票软件,预购年后返沪车票.BTW,研 ...
- P2141 珠心算测验
P2141 题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及. 某学校的珠心算老师采用一种快速 ...
- HDU4460-Friend Chains-BFS+bitset优化
bfs的时候用bitset优化一下. 水题 #include <cstdio> #include <cstring> #include <algorithm> #i ...
- SQL Server查询优化器的工作原理
SQL Server的查询优化器是一个基于成本的优化器.它为一个给定的查询分析出很多的候选的查询计划,并且估算每个候选计划的成本,从而选择一个成本最低的计划进行执行.实际上,因为查询优化器不可能对每一 ...
- Android学习第7天
这次大都是广播案例,在笔记中不予展示注: a.做开机启动时,在广播类中用到Intent需要这三行代码 Intent intent1 = new Intent(context, MainActivity ...