TCP/IP四层网络模型

      前言:本人软件工程毕业,读大学时认为软件工程的学生只要会编程就行,其余的学科都是次要的,这直接导致自己的计算机网络学的惨不忍睹,第二份工作,也就是现在的工作做app接口开发,经常与硬件打交道,看到公司产品的通讯协议之类的,自己就懵逼了,趁最近没事,恶补下计算机网络的知识。

1  TCP/IP四层协议模型与OSI七层协议模型


图1-1 TCP/IP参考模型


2  TCP/IP参考模型的四个层:应用层,传输层,网络层,链路层


图2-1 TCP/IP参考模型-对于协议


2.1 网路层

    2.1.1 IP报文格式

       IP协议是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。在局域网环境,IP协议往往被封装在以太网帧中传送。而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送。

 

  图2-2 IP协议报文格式

 其中:  
      1 ~ 版本(Version)字段:占4比特。用来表明IP协议实现的版本号,当前一般为IPv4,即0100。

      2 ~ 报头长度:

      3 ~ 服务类型:

      总长度字段:占16位长度。指明整个数据报的长度(以字节为单位)。最大长度为65535字节。

由图2-2可知,普通的IP首部长为20(4 * 5)字节,除非含有选项字段。

3  数据传输

      应用层可以认为是各种各样的应用程序,但时我们经常也会听到如FTP,Telnet,HTTP协议等等,它们被称为协议是指它们对交换的数据格式顺序做了规定,起到了协议的作用.链路层,网络层和传输层有操作系统在内核中实现,操作系统提供了API让运行在这个操作系统上的应用层的应用程序来调用.对于JAVA提供的JDK来讲,我们通常只能操作到传输层,JAVA也可以通过一个开源的项目Jpcap来实现对IP层和链路层的访问.而对于在Unix/Linux下通过C编程,可以通过函数调用操作到IP层和链路层.一个主机上的应用程序要和另一个主机上的应用程序通信,通常过程是这样的:在发送端,处于应用层的应用程序提供要发送的数据,调用操作系统的API,数据被加上如下图所示的头信息,以TCP为例,在传输层加上了TCP头形成TCP段,在IP层再加上了IP头形成了IP数据报,在链路层再加上了以太网首尾形成了以太网帧.操作系统调用网卡的驱动将以太网帧发到网络上


  图3-1 数据传输图解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值