网络 TCP/IP

来源:互联网 发布:淘宝买家虚拟商品骗术 编辑:程序博客网 时间:2024/06/05 18:45

TCP/IP

·       可以多个用共享一条线

tcp/ip 代表什么

·       利用 IP进行通信时所必须用到的协议群的统

o   RFC协议的说明,STD 管理 RFC

·       网由很多小范的网络组成,每个小网由骨干网和末端网

TCP/IP 协议分层模

·       物理将二制的01电压高低,光的闪灭波的弱信号转换

·       链路层代表驱动

·       络层

o   使用 IP协议,IP 协议基于 IP 转发分包数

o   IP协议是个不可靠协议,不会重发

o   IP协议发送失败会使用ICMP协议通知失败

o   ARP解析 IP 中的 MAC 地址,MAC地址由网卡出厂提供

o   IP还隐含链路层的功能,不管双方底层的链路层是啥,都能通

·      传输层

o   通用的 TCP UDP 协议

§  TCP协议面向有连接,能正确处理丢包,传输顺序错乱的问题,但是为了建立与断开连接,需要至少7次的包收包,源浪

§  UDP面向无接,不管方有没有收到,如果要得到通知,需要通过应

·      会话层以上分层

o   TCP/IP中,会话层,表示集中在一起

o   管理通 SNMP协议

TCP/IP 模型与通信示例

·       发包过

o   表示层转码,会话层决定何建立接,传输层负责建立接,断开接和送数据,保数据能送至端。TCP协议(传输层)在数据前附加一个首部,这个首部除了包含发送端和接收端地址以外,还包含序号,检验和(判断数据是否被破坏)。IP(网络层)模 TCP传来的首部和数据当数据。加首部,这个首部中包含地址和上一层的协议。链路层除了添加首部,还会添加 FCS到包尾

·       收包

o   链路层判断 MAC地址,判断IP 协议。网络层做的事情差不多,在这里,对于有路由器的情况下,借助路由控制表,在找到应该送达的主句或路由器以后再转发数据。传输层检验数据是否被坏,检验数据是否按照送,然后再做相同的事情

数据

数据路的作用

·       链路层将数据集合为一个帧的块,然后进行传输

·       只提供导线一端到另一端的传输

MAC 地址

·       Mac地址48比特,被入到网卡 ROM 中,不会重复

·       机自学然后生成一 Mac表,具体原理

o   4个端口接着端,A终端与端口1连接,发送 frame后交机得知端口1 A终端的关系,然后转发到其他三端,转发完成后得知端口2与主机 B对应记录到表中。以后主机 A与主机 B 的通信就通端口1和端口2

frame

·       帧是一个数据传输单元,由一个数据首部和其携的分。譬如以太网PPP

以太网帧结

以太网帧结

·       一个7个字的前导码1个字开始符作为帧的开始

·       包含源和目 Mac 地址和表明上一络协议

·       接下来是数据

·       后面是帧验证序列,以验证帧是否

·       最后有一个帧间距,两个帧发要再送至少12的空闲线路状态码

IP 协议

络层作用

·       跨越多种数据传输数据包

·       提供路由和址功能

IP 地址

·       网卡需配置至少一个 IP地址

·       IP地址由32位正整数成,制,但是了人更好的阅读,将他每8位分,共4

·       IP地址由网和主机两标识组

o   络标识在数据路的每个段配置不同的,必相互接的端的地址不重复

o   主机标识不允在同一网段内重复

·       IP地址分四个级别,分别为 A, B, C, D

o   A类地址是首位为 0,前八位是网络标识 0.0.0.0 ~ 127.0.0.0属于A

o   B类地址是前两位由 10组成,前16位是网络标识128.0.0.0 ~ 191.255.0.0属于B

o   C类地址前三位是11024位是网络标识192.0.0.0 ~ 239.255.255.0 属于B

o   D类前四位是 111032位全是网络标识224.0.0.0 ~ 239.255.255.255属于D

·       但是以上的分不用,改使用子网掩定位网络标识长度。

o   子网标识同一个网关,255.255.255.0255.255.255.1是同一个子网

o   子网掩也是32

o   中有几个1就代几位网络标识,其他主机标识

o   假如掩241,就代表前24位都络标识,用IP地址标识就是255.255.255.0,后面的0代表主机标识,理上有256台主机可

路由控制

·       仅有 IP地址不足以将数据包送到端,需指明路由器或主机。保存种信息的就是路由控制表。

·       路由控制表中记录着地址与下一步要送至路由器的地址。在 IP ,先确定 IP包首部目地址,然后在表中找到与地址具有相同网地址的记录,根据记录 IP 转发给的下一个路由器。

IPv6

·       地址128

·       解决了很多 IPv4问题

o   IP地址大(目前 IPv4地址不足的问题 NAT解决,NAT 是一种在 IP 数据包通路由器或防火墙时重写源 IP 地址或目地址的技种技被用于多台主机使用个公有 IP 访问互联网的私有网络中。

o   包首部度固定40,路由器不在做分片操作,直接在送端主机分片

o   不需 DHCP器也能自分配 IP地址

o   使用认证和加密功能

IP协议相关技术

DNS

·       IP地址不容易记忆,然后出了域名。DNS是将域名和 IP 地址相互映射的一个分布式数据

·       DNS解析

o   查询 www.baidu.comDNS器会先检查自身存,有记录则返回

o   记录不存在,DNS器向根域名服查询,然后会返回.com域的威域名服器地址

o   DNS .com 查询,得到 .baidu.com地址

o   DNS .baidu.com查询,得到最地址,存入存并返回

ARP

·       以太网协议规定两台主机相互通信必知道目主机 MAC 地址

·       数据会将上一 IP 协议发来的 IP地址转为 MAC地址

·       如果两台主机不在同一个局域网内,必路由转发才能通信。此送端通 ARP 获得的 MAC地址是一台可以通向局域网外的路由器的 MAC地址

·       IPv6解析 MAC地址通 NDP

NAT

·       用于在本地网中使用私有地址,接互时转为全局 IP 地址的技

o   本地地址10.0.0.10要向163.221.120.9通信

o   NAT路由器会将送源地址从10.0.0.10转为全局 IP地址202.244.174.37再通信

·       当一个公有 IP下有多台主机需要外通信,如果多台主机都使用相同的端口号会转为全局 IP 时数字一致,所有通过 NAPT可以给转换端口号

o   NAT路由器会自生成 NAPT转换表,转换表可以正确转换地址和端口的

o   TCP中,简历 TCP连接首次握手时的 SYN出后就会生成表。在收到关闭连时发出的 FIN 时删

TCP UDP

传输层协议

TCP UDP是传输层的两个具有代表意义的协议.

TCP是面向有链接的,可靠的协议,TCP建立连接需要三次握手,断开连接需要四次握手.因为效率比不上 UDP协议.但是 TCP协议具有重发包,顺序控制等的机制。

UDP是面向无连接的协议,不提供复杂的控制机制。做的最重要的事情就是分辨应用层协议。多用于视频音频通讯。

传输层的作用是指出具体该把数据包发给哪个应用,通过端口来分辨应用。

端口号

同一个端口不会同时出现,传输层通过辨认端口号来确认应用。但是只靠端口号识别通信是不够的。需要采取五个信息来识别一个通信,分别是源 IP地址,目标 IP 地址,协议号,源端口号,目标端口号。两个包中只要任何一个信息不同就不是同一个通信。

TCP

三次握手建立

主机 A 相与主机 B建立连接,主机 A 会首先发送一个 SYN 包给主机 B。主机B会返回确认应答ACK或者否定应答 NACK。如果这时主机 A长时间没有收到主机 B的应答,主机 A 会重发 SYN 包给主机 B,实现了重发数据包的功能。当主机 B发送 ACK 给主机 A 后,主机 A也会发送一个 ACK 包给主机 B,这时建立连接。

TCP有顺序控制的功能,通过一个序列号来确认发送的数据。在发送 SYN包前,假设主机 A 的初始序列号为1000,以该序号依次往下进行数据编号,然后告诉主机 B初始序列,同时主机 B会对 A 的序列号进行确认,假如主机 B 返回一个2000的序列号,则代表字节编号为1000 — 1999,表明主机 B收到1000字节。

为什么不是两次握

两次握手就建立连接,假如主机 A发送的 SYN 因网络问题迟迟没有到达主机 B,这时候会重发另一个 SYN包给 B,当A接受到 B ACK 包时建立连接。这时如果第一个 SYN到达 B 时,主机 B 会认为主机 A希望再次建立连接,会返回一个 ACK包给 A。当A收到 ACK 时会抛弃掉这个包,因为 A 并不想建立连接,这时主机 B 认为连接已经建立,会一直等待主机 A发送数据,这样会导致主机 B的性能损耗。

四次握手断开

主机 A 发送 FIN(请求切断连接),主机 B收到后回复 ACK FIN 包,主机 A收到主机 B FIN ACK后发送 ACK

TCP首部

TCP首部

序列号码

·       如果含有 SYN最初序列号

·       如果没有 SYN第一个数据字的序列号

确认号码,期望收到的数据的开始序列号。

检验和,对整个 TCP 报文段,包括头部和数据以16位字进行计算所得,这时一个强制性字段

UDP

UDP

报文长度,指定 UDP 报头和数据总共占用的长度。

检验和,用于发现头部信息和数据中的传输错误,该字段在 IPv4中可选, IPv6中强制。

 

©著作权归作者所有

举报文

关注没阳光的午后

写了 44590 字,被 1680 人关注,获得了 1608个喜欢

iOS工程迈步在艺术的路上个人博客:sunnykai.com

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创
原创粉丝点击