
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于大多数软件编程开发程序员来说,除了需要掌握扎实的编程开发知识以外,对于计算机网络也要有一定的认识和了解,今天我们就通过案例分析来简单了解一下,计算机网络协议基础知识分享。
在计算机诞生以来,从原始的单机模式到现在多台计算机协同工作,形成计算机网络,从前很难想象的信息共享、多机合作、大规模计算在今天也早已成了现实。在早期,计算机网络需要解决的痛点,就是怎样才能无障碍地发送和接受数据。而发送和接受数据的过程中,需要相关的协议来支撑,下面介绍下平时接触多的协议TCP/IP协议。
TCP和IP
TCP(TransmissionControlProtocol)的中文名称为传输控制协议,IP(InternetProtocol)的中文名称为互联网互联协议,除此之外,大家常见的还有HTTP、HTTPS、FTP、SMTP、UDP等等。因为TCP/IP是当前为流行的网络传输协议框架,所以我们也将TCP/IP称为协议族。
TCP
TCP的分层框架图如下图所示,为了表示网络拓补图在连接层面上的机器对等理念,采用了A机器和B机器的说法。
链路层:单个0、1是没有意义的,链路层是以字节为单位把0与1进行分组,定义数据帧,写入源和目标机器的物理地址、数据、校验位来传输数据。链表层报文结构如下:
MAC地址长6个字节共48位,通常使用十六进制数表示,我们可以在命令行窗口中输入ifconfig-a指令即可看到MAC地址。
网络层:根据IP定义网络地址,区分网段。子网内根据地址解析协议(ARP)进行MAC寻址,子网外进行路由转发数据包。这个数据包也就是IP数据包。
传输层:数据包通过网络层发送到目标计算机后,应用程序在传输层定义逻辑端口,确认身份后,将数据包交给应用程序,实现端口到端口间通信。的传输层协议是UDP和TCP。UDP只是在IP数据包上增加端口等部分信息,是面向无连接的,是属于不可靠的传输协议,常用于视频通信、电话会议等等,因为这些应用场景就算少/丢一两帧数据影响也不会很大。与之相反,TCP是面向连接的,所谓的面向连接,就是一种端到端之间通过不断地失败重试机制建立的可靠数据传输方式,如同一条固定的信息通道承载着数据的可靠传输。
应用层:传输层的数据到达应用程序时,以某种统一规定的协议格式解读数据。比如,E-mail在每个公司的程序界面、操作、管理方式都不一样,但是都能读取到邮件的信息,这是因为邮件遵守了SMTP协议,该协议如同传统的书信格式,按规定填写邮政编码以及收件人信息。
小结
程序在发送消息时,应用层按既定的协议打包数据,随后由传输层加上双方的端口号,由网络层加上双方的IP地址,再由链路层加上双方的MAC地址,并将数据拆分成数据帧,经过多个路由器和网关后,到达目标机器。简而言之,就是按“端口->IP地址->MAC地址”这样的路径进行数据的封装和发送,解包的时候反过来操作即可。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。