TCP/IP网络协议

  1. TCP/IP网络协议简介
    TCP/IP(Transmission Control Protocol/Internet Protocol)中文翻译为传输控制协议/因特网互联协议。TCP/IP协议是当前流行的网络传输协议框架,但是严格的讲它是一个协议族群,TCP/IP是它的总称。

  2. TCP/IP协议分层框架
    我记得上高中做数学题的时候,老师总是说,看完题先画个图,简单明了,咱么也贯彻一下,话不多说,直接上图。这张图有点丑哈
    在这里插入图片描述
    链路层:
    对于计算机来说单个的0或者1是没有意义的,就像世界上只有男人或者只有女人?咳。。。扯远了,链路层以字节为单位把0/1进行分组,定义数据帧,写入源和目标机器的物理地址、数据、校验位来传输数据。报文结构如下图
    在这里插入图片描述
    网络层:
    根据IP定义网络地址,区分网段。子网内根据地址解析协议(ARP)进行MAC寻址,子网外进行路由转发数据包,这个数据包就是IP数据包。其中,IP是面向无连接、无状态的,没有额外的机制保证发送的包是否到达,主要功能是在WLAN内进行路由寻址。

    传输层:
    数据包通过网络层发送到目标计算机后,应用程序在传输层定义逻辑端口,确认身份后,将数据包交给应用程序,实现端口到端口间通信。TCP就在这一层,TCP是一种面向连接、确保数据在端到端之间可靠传输的协议。
    应用层:
    传输层的数据到达应用程序时,以某种统一规定的协议格式解读数据。比如。E-mail在各个公司呈现的管理页面基本上都不怎么一样,但是SMTP已定规定了要填写邮编和收信人信息。
    总结:程序在发送消息的时候,应用层按既定的协议打包数据,随后又传输层加上双方各自的端口号。由网络层加上双方的IP地址,由链路层加上双方的MAC地址,并将数据拆成数据帧,经过多个路由器和网关后,到达目标机器。

3.建立TCP连接
面向连接是指在发送数据前需要建立一条虚拟的链路(或通道?),然后让数据在这条链路上“流动”完成传输。为了确保数据的可靠性,不仅需要对发出的每一个字节进行编号确认,校验每一个数据包的有效性,在出现超时情况下进行重传,还需要通过实现滑动窗口和拥塞控制等机制,避免网络状况恶化而最终影响数据传输的极端情形。每个TCP数据包是封装在IP包中的,每一个IP头的后面紧接着的事TCP头,最直接的体现就是访问一个服务的时候需要IP加上端口号。
TCP三次握手创建连接(《码出高效 java开发手册》):
在这里插入图片描述
三次握手讲的事建立连接的三个步骤:
1.A机器发出一个数据包并将SYN置为1,表示希望建立连接。这个包中的序列号假设为x。
2.B机器收到A机器发过来的数据包后,通过SYN得知这是一个建立连接的请求,于是发送一个响应包并将SYN和ACK标记都置1.假设这个包中的序列是y,而确认序列号必须是x+1,表示收到了A发过来的SYN。在TCP中,SYN被当作数据部分的一个字节。
3.A收到B响应包后需要进行确认,确认保重将ACK置为1,并将确认序列号设置为y+1,表示收到了来自B的SYN。
两个目的:
信息对等和防止超时。
三次握手确认信息表:
在这里插入图片描述

  1. TCP断开连接
    正所谓相爱容易分手难,建立连接需要三个步骤,而分开需要四个步骤。可以用比较通俗的说法进行描述一下。(摘自《码出高效 java开发手册》)
    男:我们分手吧。
    女:好的,我的东西收拾完,发信息给你。(此时男生不能再拥抱女生)
    (一个小时后)
    女:我收拾好了,分手吧。(此时女生不能再拥抱男生)
    男:好的 (此时,双发约定两个月过渡期后,才可以找新的对象)
    暂时先说这么多,有兴趣的朋友可以去再去研究一下四次的具体步骤,这里就不赘述了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值