TCP/IP网络理解

计算机运行相同的协议,才能相互通信,这就是传输协议,是数据通信的基础,最开始的是FTP协议

通信实体也是要分层次的,类似与公司一样,都需要分出不同的层次,各个进行不同的工作,分出的层要明确每个层之间的关系,各自要干的事是什么,上下关系是什么


ISO/OSI分层,一共7层,前三层属于链接方式,后四层是端对端方式

1.应用层-----------------网络与应用程序之间的接口

2.表示层-----------------数据表示、安全、压缩

3.会话层-----------------建立、管理、终止会话

4.传输层------格式(数据段Segment)--------识别特定程序(端口号)----------用于网关、协议转化器

TCP和UDP属于传输层

5.网络层------格式(数据包Packet)-----------通过ip地址进行路径选择-----------路由器

网络层对传输层有两种网络服务{

1.面向连接

路径、传输速度确定,因为要连接的对象是知道的,怎么连接,哪个路径啥的都是确定好的,所以速度也就确定了

关注于如何建立链路

2.无连接

路径传输速度都是不确定的,因为对象不知道,无法确定

关注在每一站都建立详细的路由表

}

传统的IP是无连接的,后来的多协议标签交换(MPLS)是面向连接的


网络层的任务{

1.路由选择

面对各种路径时要做出路径选择

2.拥塞控制

避免阻塞,如果阻塞的话,就缓解阻塞,比如丢弃一部分数据或者是进行缓存

3.局域网间互联

让两个数据包在不同的网络之间传递

4.统计控制

}

IP就是网络层协议

自我理解:网络层类似于交警,选择哪个方向是通的,哪个暂停,车多的话指挥交通等


6.数据链路层----------格式(将比特信息封装成数据帧Frame)---------建立撤销网络链接---------网卡、交换机、网桥

将bit流组为帧Frame,进行传输,还有差错检验和纠错机制,以太网就是属于这个


7.物理层-------格式(传输bit流)-----------建立、维护撤销物理连接----------光纤、同轴电缆等

就是传输通道,物理的机械的或者是光电的实际可见的通道


TCP/IP分层,分为4层

对应关系是下图


最核心的是上面的三层,TCP/IP是一个协议组,包含好多的协议,只是TCP/IP是最重要的,tcp是传输协议,ip是网际协议

1.应用层---------FTP/HTTP等

2.传输层---------TCP/UDP

TCP是可靠的,面向连接的协议,是传输控制协议,将一个主机的字节流发送给其他主机{

在发送端:上层传下来的字节流分成报文段传给下层,类似于部门经理,将上面的指示分发,发送给下面的员工

在接收端:把收到的报文重组发送给上层,相当于部门经理将员工的工作总结好报告给经理

}

UDP是不可靠的无连接的协议

3.互联网层-------IP/ICMP

又叫网络层或者是IP层,IP是不可靠的无连接的协议,接受传输层的请求,传输有目的地址的信息。IP给每台计算机分配一个地址,就是咱们常说的IP地址,将信息以IP包的形式传到目的地址,是TCP/IP的核心,IP协议最关键的是路由协议。ICMP是传送IP的控制信息

感觉类似与快递员,收到包裹之后,通过判断每个包裹的目的地,然后准确送到,他自己本身是没有目的地的

4.网络接口层---------以太网等

给互联网层一个接口来传递IP分组,以太网是IP通信中最常见的方式,10Gbit/s以下的以太网一般用于局域网


其中较为重要的是三次握手和四次挥手

TCP的连接和建立都是基于C/S的,就是client/server的,建立需要三次握手,断开需要四次挥手

三次握手

1. client  --------连接请求--------->  server,client发起请求连接,告诉server我要连接了,请求标志位时SYN=1,说明请求连接,发送序列是SEQ=x,client进入SYN_SEND状

2. server---------确认请求-------->client ,有SYN=1,知道有请求之后,将SYN=1,ACK=x+1,ACK是确认序号,并且还发送一个SEQ=y,这个SEQ是新的,值可以是新的,这时候server进入SYN_RCVD状态

3. client ---------确认并连接----->server,先是client检查ACK是不是x+1,SYN是否是1,都对的话,就将SYN=1,ACK=y+1,连同数据包一块发给server,server检查ACK是否是y+1,SYN是否是1,都正确的话就连接成功,client和server都进入ESTABLISHED状态

就相当于这样:A对B说,我要来你家,B说我家有人可以来,A接到消息后确定B家有人,就可以去找B了

三次握手之后,就可以传送数据了


四次挥手

1. client--------断开请求发送--------> server,client要断开连接了,先是发送断开的请求,告诉他我要断开,发送标志位fin=1,SEQ=1,ACK=1,client进入FIN_WAIT_1状态

2. sercer-------发送确认-------->client,server知道要断开后,发送确认包,进入CLOSE_WAIT状态

3. server-------断开TCP------>client,发送一个确认,进入LAST_ACK状态

4. client--------确认断开------>server,client接到server的断开请求后,发送一个确认,ACk=y+2,server进入CLOSE状态

相当于:A对B说我们分手吧,B说你确定?,B继续说好分就分,然后A一听,说那就分手吧,结果就断开了


数据的封装分为好几层

数据------加TCP报头(传输层)------>数据段-------加IP报头(网络层)------>数据包--------加数据链路层报头(数据链路层)------>数据帧------->bit,通过网络介质传输



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值