运输层和应用层

  1. 运输层协议是用代码实现的服务组件,可以传递数据包,常说的三次握手,准确的说就是指tcp建立连接的三次请求、确认握手,只有tcp建立了连接,上面的应用层协议才可以依靠他进行数据传递。另外,tcp处于连接或者断开状态,都是依据tcp数据包头部的连接和断开状态位来确定的。例如,一个应用进程想建立TCP连接,例如浏览器,他就会调用OS的TCP接口,把头部的连接状态位改变,然后发送请求,如果他想断开连接,那么就可以吧TCP的报文头部断开位进行重置,这样就向服务器发送了断开请求的连接。从这里可以发现,浏览器是可以控制什么时候发起连接和什么时候中断连接的。因此,再这样的一种情况下, 就出现了Http1.0和http1.1协议。http1.1协议之所以叫做持续连接协议,就是因为浏览器在第一次建立TCP连接之后,发送一个HTTP请求,但是不断开连接,也就是不发送断开连接请求,这样一个页面的许多连接例如图片,js代码都可以重复的利用这个连接,也正是因为没有发送断开连接请求,服务器也就没有收到断开连接请求,因此这个连接也就一直存在着,也就可以一直适用。

  2. 应用层协议http只是虚拟的,只是规定了在互联网上进行数据传输的数据格式,这样浏览器接收数据的时候可以依据这些规定好的数据格式主要是HTML进行解析渲染,因此他只是一种规定,操作系统中并没有像TCP这样实现的服务组件,而依据HTTP封装的数据,是需要tcp这个运输层协议进行数据运输。因此可以形象的比喻,tcp相当于汽车,http则相当于需要运输的各种货物。

  3. tcp协议具有复用和分用功能。多个应用程序进程,例如我们电脑上几乎所有运用的应用程序进程都是通过操作系统提供的TCP服务组件来进行数据传输或者与其他主机的进程进行数据通讯。问题来了,既然如此, 那么对于TCP服务组件他是如何来区分不同的应用程序进程呢?此时端口号出现了,TCP的数据报文里面都会带一个端口号,因为一个TCP服务组件可以有多个线程(这是个人理解)可以支持一定数量的TCP连接。这样一个TCP连接就会有相应的端口号,同时也就对应了不同的应用程序进程,因此,就可以把数据交给相应的应用进程进行数据处理了。同一个运输曾协议为多个应用层进程通信。而区别不同的进程,就是通过端口号。

  4. 计算机网络之间的通信都是通过网卡来实现的。网卡其实就是i/o设备,既然网卡是硬件,那么自然就需要安装按照此硬件编写的驱动指令,也就是驱动程序,当然这些驱动指令是有硬件场商在生产硬件的时候就按照硬件的内部结构确定好,可以支持那些指令的。安装上驱动程序之后,操作系统就可以通过这些驱动程序来操作网卡,自然也就可以完成数据的网络通信。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值