Linux网络

网络:网络是把不同的计算机连接起来就构成了网络
目的:资源共享,信息交互
构成网络:传输介质:双绞线 同轴电联 光纤
网络设备:交换机 路由器

互联网:把网络和网络连接起来就构成了互联网

ip地址:网络号+主机号

计算机网络

端口 标识一个应用程序
端口不能重复
1024以内
1024~4096
以上 临时端口

分层:ISO的osi模型 7层 tcp/ip模型

**这里写图片描述**

端口:端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见(标识程序)

tcp协议 :面向链接的 可靠的 流式服务

udp:无链接 不可靠 数据报
每次都拆新包,读不完扔掉
这里写图片描述
关防火墙
这里写图片描述
建连接:connect

重点:
状态转移图:
这里写图片描述
SYN:同步序列编号。是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。
ACK 是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。

tcp协议 :面向链接的 可靠的 流式服务
三次握手(建立连接)
这里写图片描述
这里写图片描述
为什么三次握手是三次不是两次四次?
两次太少,如果第一次握手时丢包了,那么如何判断网络是否通畅?因为两次丢包的意思是,对方确认并回复,如果没有收到回复,己方如何认为,他丢包了还是我丢包了?那就重传吧,如果并没有对方这个人,那么可能无限重传下去,浪费网络资源。三次的话,因为对方也需要收到回复,那么如果是己方丢第一个包,那么接下来几次重传没有收到任何回复,那么认为网络不好停止就可以了,如果网络通畅,对方一定会收到其中某一个请求,那么进行回应,如果此时不对其进行回应,也就是只握手两次,目标主机无法得知此包是否到达,也就不知道是否要进行重传,如果此包丢了,那就不会去重传,己方只能认为没有目标主机,连接失败。那如果是三次,在第二次握手时丢包了,对方没有收到确认,就会重传,重传之后,己方一定会收到某一个包。这样双方都知道对方的确实存在,对于第三次的握手只需要在后续数据传输中捎带确认就可以了。所以第四次握手是不需要的,有了第四次那就有第五次第六次…….,这样是没有意义的,只需要确认对方确实存在就可以了,后续数据传输就能捎带确认了

三次握手什么阶段易被攻击:
利用tcp协议的攻击原理是a向b发送一个syn包,b返回ack+syn包,但a不再发送ack确认包,那么b将就这样一直等待a返回的确认包,占用了连接资源,这样的状况成为半开连接,直到连接超时才会关闭连接。如果a向b发送大量的syn包,b的网络连接资源将被耗尽,就构成了攻击。还有更坏的一种方式是在发送的syn包中把源地址设为一个不存在的地址,服务器向一个不存在的地址发送请求包自然得不到回应。

四次挥手(关闭连接)
这里写图片描述
为什么说tcp是可靠的?
可靠:1.应答确认
send—–>收到
确认信息<—–
2.超时重传(有重复传送时,根据序列号比较,去掉重复的,并且会排序。序列号是唯一的)
3.滑动窗口(流量控制):防止发送端发送过快,接收端接收不过来。

流式服务(粘包)
这里写图片描述
recv:实际读到的字符数
n = 0;recv不阻塞,对方关闭

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值