TCP/IP

物理层:光缆、双绞线等物理连接电脑的手段,传输电信号,即是0和1

连接层:单纯的0和1,计算机读不懂,得给双方一套规则,确定0和1的分组方式。以太网协议:一组电信号构成一个数据包,叫做“帧”,每组帧分成两部分:标头和数据。标头包括数据包的一些说明项,如发送者,接受者,数据类型等,数据则是传输的内容。帧标头长度固定为18字节,数据长度最少46字节,最长1500字节。数据很长必须分割发送。

地址:网卡的地址就是MAC地址。长度是48个二进制位,通常用12个16进制表示。广播:接收机的MAC地址怎么获得?通过ARP协议。获得之后放在标头,向本网络内所有机器进行发送,由计算机判断自己是否为接收方。

网络层:理论上依靠MAC地址可以从上海找到洛杉矶。以太网采用广播方式发送数据包,所有成员人手一包,效率不仅低,而且局限在发送者所在的子网络。因此需要区分MAC地址是否属于同一个子网络,如果是则广播,否则通过路由传输。网络层即引进一套新的地址,用以区分是否同属一个子网络,叫网址。因此一台计算机地址=MAC地址+IP地址。

 ipv4版本中,0.0.0.0~255.255.255.255。互联网上每一台计算机都会分配一个IP地址。这个地址分两部分,前一部分代表网络,后一部分代表主机。以172.16.254.188为例,172.16.254代表网络部分(24位),188代表主机部分(8位)。注意网络部分和主机部分占几位也不尽然相同,单单从IP地址是无法判断前几位是网络部分,这时候就要用到子网掩码了。子网掩码也是一个32位的二进制,如果是网络部分的为1,如果是主机部分为0,例如255.255.255.0,就是说前24位为网络部分,后8位为主机部分。那么,如何判断两端IP是否在同一子网络中呢,方法是将子网掩码和IP地址进行与运算,得到结果相同则是同一子网。比如,已知IP地址172.16.254.1和172.16.254.233的子网掩码都是255.255.255.0,两者与子网掩码分别进行AND运算,结果都是172.16.254.0,因此它们在同一个子网络。

数据包:根据IP协议发送的数据叫IP数据包。IP数据包也分标头和数据。标头主要包括版本,长度IP地址等信息,数据则是IP数据包的具体内容。IP包标头为20-60字节,整个数据包总长度最大为65535字节

ARP协议:IP地址是已经知道的,要从IP地址去获取MAC地址。如果收发机在同一子网内,可以用ARP协议,得到对方的MAC地址。ARP协议发出一个数据包,其中包含要查询的主机IP,他所在的子网每一台机都会收到,然后作出比较,如是则填写MAC地址进去并且作出回复。

传输层:有了MAC地址和IP地址后,我们可以在互联网上任意两台主机建立通信。但是一台主机有多个程序。当一个数据包来时,如何区分是网页内容,还是QQ的在线聊天消息呢?就是说这个数据包到底提供给哪个程序呢,这时候就使用端口(port)。每个数据包都发到主机的特定端口,不同的程序就可以接收自己所需要的数据而不会混淆了。端口为16个二进制数,即0~65535。而0~1023为系统占用端口。传输层就是建立端口到端口间的通信。主要确定主机和端口,我们就能实现程序间的交流。所以Linux把主机+端口成为“套接字socket”。

UDP协议:他的格式几乎就是在前面的数据前面加上一个端口号。标头增加了发出端口和接收端口。

TCP协议:UDP虽然简单,但是无法判断对方是否收到。TCP类似有确认机制的UDP,每发出一个包都要求确认。TCP消耗资源大,实现复杂,但可靠性高。

应用层:"应用层"的作用,就是规定应用程序的数据格式。
举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。
这是最高的一层,直接面对用户。它的数据就放在TCP数据包的"数据"部分。因此,现在的以太网的数据包就变成下面这样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值