TCP/IP协议族学习日志

TCP/IP协议族简介

TCP/IP协议是个协议族而不是简单的一个协议。相当于互相通信的程序之间所达成的一种约定,规定了分组报文的结构、交换方式、包含的意义以及怎样对报文所包含的信息进行解析。包括TCP(传输控制协议)、IP(互联网协议)、UDP(用户数据报协议)、SMTP(简单邮件传输协议)、ARP(地址解析协议)、ICMP(互联网消息控制协议)、SNMP(简单网络管理协议)、FTP(文件传输协议)。

TCP/IP参考模型

一共四层,由上到下依次是:应用层、传输层、网络层、数据链路层。应用层包括我们最常用的http、ftp等最常用的协议;第二层有TCP、UDP等; 第三层,网络层,IP协议就在这里;最后,数据链路层能够为带传输的数据加一个协议头,并进行CRC编码,为最后的传输做准备。

一些常识

端口号分为逻辑端口和物理端口,物理端口适用于物理设备之间的接口,而逻辑端口则是用于TCP、UDP协议中逻辑上区分不同的服务。因而端口号port并不是物理上的意义。

IP/ARP/RARP

IP(internet protocol)ARP(Adress Resolusion Protocol) RARP(Reverse ARP)
这三个协议都位于网络层。
ARP用来找到目标主机的以太网卡的Mac地址,IP则承载要发送的信息,数据链路层可以从ARP得到数据的传送信息,而在IP得到数据信息。
1.IP协议
它是TCP/IP协议的核心。所有的TCP、UDP、ICMP、IGCP的数据都由IP数据格式来传递。说IP协议并不是一个可靠的协议,指的是,不保证送达,也没有一个处理数据未传达的机制。它认为这是上层协议要处理的事情,因而TCP是一个可靠的协议。
2.IP协议头
/*IP头定义,共20个字节*/
typedef struct _IP_HEADER 
{
 char m_cVersionAndHeaderLen;       //版本信息(前4位),头长度(后4位)
 char m_cTypeOfService;            // 服务类型8位
 short m_sTotalLenOfPacket;        //数据包长度
 short m_sPacketID;              //数据包标识
 short m_sSliceinfo;               //分片使用
 char m_cTTL;                  //存活时间
 char m_cTypeOfProtocol;          //协议类型
 short m_sCheckSum;             //校验和
 unsigned int m_uiSourIp;          //源ip
 unsigned int m_uiDestIp;          //目的ip
} __attribute__((packed))IP_HEADER, *PIP_HEADER ;

需要给予特别注意的是TTL字段,它决定了IP数据包的存活时间。每穿过一次路由就会减1,当减到0时,则丢弃该数据包,所以说IP协议并不是可靠的协议。这个字段长度为8位,即是说最大为255。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值