iso与tcp

iso七层:
应用层:通过人机交互界面实现各种各样的服务
表示层:编码 解码 加密 解密
会话层:建立 维持 终止回话
传输层:通过端口号区分不同的服务 65535个端口号 1-1023 静态端口号
1024-65535 动态端口号
网络层:通过ip地址进行逻辑寻址
数据链路层:mac媒介访问控制层
llc逻辑链路层,为上层提供fcs校验
物理层:定义电气电压,接口规范,光学特性

Tcp协议

传输控制协议,是一种面向连接的,可靠的数据传输协议
tcp包头
在这里插入图片描述源端口和目的端口,各占2个字节,分别写入源端口和目的端口;
序号,占4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号。例如,一段报文的序号字段值是 301 ,而携带的数据共有100字段,显然下一个报文段(如果还有的话)的数据序号应该从401开始;
确认号,占4个字节,是期望收到对方下一个报文的第一个数据字节的序号。例如,B收到了A发送过来的报文,其序列号字段是501,而数据长度是200字节,这表明B正确的收到了A发送的到序号700为止的数据。因此,B期望收到A的下一个数据序号是701,于是B在发送给A的确认报文段中把确认号置为701;
数据偏移,占4位,它指出TCP报文的数据距离TCP报文段的起始处有多远;
保留,占6位,保留今后使用,但目前应都位0;
紧急URG,当URG=1,表明紧急指针字段有效。告诉系统此报文段中有紧急数据;
确认ACK,仅当ACK=1时,确认号字段才有效。TCP规定,在连接建立后所有报文的传输都必须把ACK置1;
推送PSH,当两个应用进程进行交互式通信时,有时在一端的应用进程希望在键入一个命令后立即就能收到对方的响应,这时候就将PSH=1;
复位RST,当RST=1,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立连接;
同步SYN,在连接建立时用来同步序号。当SYN=1,ACK=0,表明是连接请求报文,若同意连接,则响应报文中应该使SYN=1,ACK=1;
终止FIN,用来释放连接。当FIN=1,表明此报文的发送方的数据已经发送完毕,并且要求释放;
窗口,占2字节,指的是通知接收方,发送本报文你需要有多大的空间来接受;
检验和,占2字节,校验首部和数据这两部分;
紧急指针,占2字节,指出本报文段中的紧急数据的字节数;
选项,长度可变,定义一些其他的可选的参数。

拥塞控制算法:
慢启动:
拥塞避免:
快速重传:
快速恢复:
Tcp的特点:
1、基于流的方式
2、面向连接
3、可靠的传输
4、在网络上不佳时尽量减少系统由于重传带来的宽带开销
5、通信连接是维护通信的两个端点,不关注中间节点与网段
三次握手:
客户机发送syn报文,服务端收到syn报文后回复syn ack报文,客户机收到syn ack报文后,回复ack报文建立tcp连接
(((第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers);
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手;)))

四次断开:
客户端发送fin报文,服务器收到后回复ack报文,一段时间后再回复fin报文,客户机收到fin报文后回复ack报文并且等待连接断开。
(((1.客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送
2.服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。 和SYN一样,一个FIN将占用一个序号
3.服务器B关闭与客户端A的连接,发送一个FIN给客户端A
4.客户端A发回ACK报文确认,并将确认序号设置为收到序号加1
为什么连接的时候是三次握手,关闭的时候却是四次握手?
因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,”你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。)))

问什么tcp要三次握手,四次断开。
三次握手:为了实现可靠的传输,双方需要共同维护一个syn序列号。三次握手指双方互相告知序列号并且确认对方已经收到序列号。
四次断开:在服务器收到fin报文后,数据可能没有发送完成,所有需要更多的时间发送完成数据在断开连接,所以需要4步。

Tcp的syn攻击原理:通过发送大量的半连接请求,消耗服务器的cpu及内存。不给服务器回复ack报文,服务器会等到该链接超时才会删除。
防御:过滤(输入源过滤,ISP拒绝将一个源IP地址不属于其来源子网的包进行更远的路由。);防火墙和代理;活动监视器。

滑动窗口:收到ack确认包的字段不在发送,没有收到ack确认包的报文重传

Tcp有哪些定时器:坚持定时器,重传定时器,保活定时器,时间等待计时器。

Tcp和udp的区别:
Tcp有专门的传输保障机制而udp没有
Tcp是面向连接的传输协议,udp是无连接的数据报服务。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值