tcp_ip理解.doc_第1页
tcp_ip理解.doc_第2页
tcp_ip理解.doc_第3页
tcp_ip理解.doc_第4页
tcp_ip理解.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

理解TCP/IP网络通信原理1、 OSI模型其中最下面两层:物理层与数据链路层可以不需要了解,他们主要是系统负责驱动的设备与网络硬件。一般我们常用的网络协议是TCP与UDP,但在TCP/UDP与数据链路层之间有一个网络层,我们可以直接绕过TCP与UDP,直接使用IPv4或者IPv6,我们称为原始套节字(RAW Socket)。上面三层统称应用层,主要有http,ftp,telnet等协议支持。2、 网络工具1、 Netstata) 提供接口信息netstat i说明:其中eth0是以太网接口。lo是本地回旋(loopback)接口b) 路由表netstat -rc) 坎坎坷2、 ifconfiga) 查找所有接口信息ifconfig -ab) 查找指定接口的详细信息ifconfig 接口名3、 pinga) 查找多个ip,争对广播IP使用ping指令ping 广播ip地址3、 常用协议关系(1) UDPUDP是简单的传输层协议,UDP的主要问题是数据缺乏可靠性。如果要确保数据到达目的地,应用程序必须建立一组特性来保障。每个数据报文都有一定长度,一般一个数据报就是一条记录。UDP是无连接的。TCP 是全双工的。(2) TCPTCP是有连接的。TCP提供数据可靠传输。TCP发送的数据是有序无界的。一般称之为流。TCP提供数据缓冲流量控制。TCP是全双工的,在发送数据的同时,也可以接收数据。(3) 协议头的关系4、 TCP的连接关闭过程1、 服务器准备好接收外来连接,称为被动打开(passive open)。该过程由socket,bind,listen等函数完成。2、 客户主动打开连接(active open)。该过程由connect函数完成。该过程中客户一般SYN分节同步,告诉服务器在将要的连接中发送的数据的初始序列号。SYN分节不携带数据,只有IP头部,TCP头部和可能的TCP选项。备注:常用TCP选项如下MSS选项:SYN的最大分节大小(maximum segment size)。接收窗口大小选项:最大数据接收空间大小。上面两个选项可以使用socketopt设置,分别对应TCP_MAXSEG和SO_RCVBUF。3、 服务器确认客户的SYN分节,同时也发送一个SYN分节给客户,也包含在将要连接中发送数据的初始序列号。同时服务器还发送一个对SYN的ACK。4、 客户确认服务器的SYN。上面过程需要交换三个分组,一般称为TCP的三路握手(three-way hand-shake)。其中J与K是数据的初始序列号。ACK确认的是下一个将要接收的数据的期望序列号。TCP的连接需要三个分节,TCP的关闭需要4个分节。TCP的状态图:5、 IP头布局结构体定义:struct ip #if _BYTE_ORDER = _LITTLE_ENDIAN unsigned int ip_hl:4;/header length unsigned int ip_v:4;/version#endif#if _BYTE_ORDER = _BIG_ENDIAN unsigned int ip_v:4;/version unsigned int ip_hl:4;/header length#endif u_int8_t ip_tos;/ type of service u_short ip_len;/ total length u_short ip_id;/ identification u_short ip_off;/ fragment offset field#defineIP_RF 0x8000/ reserved fragment flag#defineIP_DF 0x4000/ dont fragment flag#defineIP_MF 0x2000/ more fragments flag#defineIP_OFFMASK 0x1fff/ mask for fragmenting bits u_int8_t ip_ttl;/ time to live u_int8_t ip_p;/ protocol u_short ip_sum;/ checksum struct in_addr ip_src, ip_dst;/ source and dest address ;下面是每个字段的说明。字段字段说明unsigned int ip_v:4版本。常见版本:4IPv45Stream IP Datagram mode (experimental IP)6IPv67TP/IX (the next Internet Protocol)8The P Internet Protocol9TUBA其中IPv4的版本使用宏定义:#defineIPVERSION4 /* IP version number */unsigned int ip_hl:4IP头长度。单位是word,每个word是4字节。比如5word,就是20个字节。u_int8_t ip_tos服务类型。指数据包的管理方式。设置为0表示按正常方式管理。Tos有四种选项可以设置:Minimum Delay, Maximum Throughput, Maximum Reliability, and Minimum Cost。这四个选项可以使用setsockopt设置。u_short ip_lenu_short ip_id数据包ID。每个数据包唯一的ID。u_short ip_off数据包是否分节表示。#defineIP_RF 0x8000/* reserved fragment flag */#defineIP_DF 0x4000/* dont fragment flag */#defineIP_MF 0x2000/* more fragments flag */#defineIP_OFFMASK 0x1fff/* m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论