TCP_IP协议_知识总结.doc_第1页
TCP_IP协议_知识总结.doc_第2页
TCP_IP协议_知识总结.doc_第3页
TCP_IP协议_知识总结.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

/*0809 tcp/ip知识总结*/1.osi 开放系统互连模型 (理想化的状态,在这个状态内给个层各司其职)总共有7层。应用层:ftp,www,telnet,nfs,smtp,gateway,snmp表示层: tiff,gif,jpeg(编解码),pict,ascii,ebcdic,encryption,mpeg,midi,html 会话层:rpc,sql,nfs,netbios,names,appletalk,asp,decnet,scp 传输层:tcp,udp,spx 网络层:ip(寻址方式),ipx(),appletalk (苹果自定义的协议) 数据链路层:frame relay, hdlc, ppp(点对点), ieee802.3/802.2, fddi, atm, ieee 802.5/802.2 物理层:eia/tia-232, eia/tia-499, v.35, v.24, rj45, ethernet, 802.3, 802.5, fddi, nrzi, nrz, b8zs 2.tcp/ip协议架构体系应用层:telnet(超级终端,远程登录),ftp,smtp,snmp. 用户进行操作;传输层:tcp (重),udp(重),ugp 获取数据;网络层: ip(地址标识符),icmp(跳过传输层,ping命令.),igmp主要用于寻找地址;数据链路层:arp,rarp包括驱动和硬件; ethernet(以太网);ie802.ng(无线)3.数据链路层:负责在不同的传输媒介上处理物理信号硬件细节,从而实现数据在不同媒介直接传送对应我们所说的驱动程序和网卡网络层:控制数据在网络中传输路径,即是数据传送给谁,包括地址标识和寻址方式管理协议:icmp,icmpv, igmp, mld传输层:提供两个主机之间的应用程序提供数据传输服务。比如数据应该交给哪个进程处理,当数据没有到达对方进程时,或者当数据堵塞时,该如何处理:流量控制当接收数据,如何判断数据的完整性:差错控制 会话层: 负责在网络中的两节点之间建立和维持通信。会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对 话,决定通信是否被中断以及通信中断时决定从何处重新发送。你可能常常听到有人把会话层称作网络通信的“交通警察”当通过拨号向你的 i s p (因特网服务提供商)请求连接到因特网时, i s p 服务器上的会话层向你与你的p c 客户机上的会话层进行协商连接。若你的电话线偶然从墙上插孔脱落时,你终端机上的会话层将检测到连接中断并重新发起连接。会话层通过决定节点通信的优先级和通信时间的长短来设置通信期限 表示层: 应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。表示层管理数据的解密与加密,如系统口令的处理表示层协议还对图片和文件格式信息进行解码和编码3.对于分层而言,每一个分层都有相应的协议;并且个从上到下每一个分层的协议都是基于 下一个协议的,如果没有下一个分层的话,是没有任何意义的。4.用户数据的打包过程:ethernetiptcpappuserethernetheadheadheadheaddatatrailer以太网头5. 数据解析在以太网驱动解析时,以太网得到是ip 将数据包交给ip来解析,ip解析后,得到tcp,将数据包再交给tcp 来解析,当tcp解析后,查看端口,将数据包根据记录的端口号通过端口交给应用;6. 路由器的作用:路由: 选择最优最好的路径;对打包好的数据进行发送;互换不同的网络(有线和无线);7.以太网与令牌网的区别本质是硬件不同,用户的网卡硬件决定;8.tcp 协议特点(先建立连接,在发送数据)(传输控制协议)面向连接的传输层协议;提供可靠的通信;sock_stream 流式套接字;以字符流(character stream)的形式来发送数据;但是,为了提高tcp传输效率,是将数据先存起来,当达到一定字节才按一定tcp数据报格式打包发送;在接受的过程需考虑数据边界。如果没有边界,则将产生ptc粘包;9.udp协议特点(不可靠的无连接协议)(数据报协议)无论接收方是否在线,知道对方地址都进行数据发送。可进行高效率的传输;但是不能保证数据的可靠性;sock_dgram 数据报套接字;无论多少个字节都打包成udp数据报进行发送。10.socket 套接字特点a.插口的形式;b.socket 是成对出现的;c.socket 的类型:流式套接字sock_stream; 数据报套接字sock_dgram原始套接字 sock_rawd.编程接口 socket() 函数;11.字节序:数据存放在内存的序列;大段模式:高位先存(左边为高位)小段模式:低位先存(右边为低位)在读取时,都是从低位开始读,但是在广域网中存储均是大端模式,因此在网络编程中,需将字节转换为大端;12.tcp|udp端口号,端口号为short型的,个数为65535在1-1024之间,端口号为众所周知的,不能申请占用;在1024-5000之间为系统占用,也不可申请占用;在500065535之间,用户可申请占用;在使用过程中,申请5000以上的;13.ip地址32位存储;24位为网络号;8位位主机号;但是在使用过程中,一般不占用0,1,255.这3个用做特殊用途;14.tcp |udp 都存有1个进程向系统申请的端口号。15.对于端口和ip号,都需转换成大端的模式;16.字节序转换1.主机字节序到网络字节序u_long htonl(u_long hostlong);u_short htons(u_short short);2.网络字节序到主机字节序u_long ntohl(u_long hostlong)u_short ntohs(u_short short)3. ip地址转换函数 inet_aton(const char*strptr, struct in_addr*addptr);b.char * inet_ntoa(struct in_addr addr)将用inet_aton 转换过的转换回来缺点,不能转换ipv6 的地址;将读出的东西存入struct in_addr addptr 中;struct in_addrin_addr_t s_addr;a.in_addr_t inet_addr(const char *strptr)缺点,不能转换55 若强制转换转换后为-1;struct in_addr * pton(int af, const char *strptr, (void *)&addr)b.const char *inet_ntop(int af, const void *src,char *dst, socklen_t size);将用inet_pton 转换过的转换回来可转换任意类型的17.socket 函数函数原型: int socket(int domain, int type, int protocol);返回值:成功返回一个类似文件描述符的数字,也是从最小3开始;错误返回-1参数解析:domain通信域 af_inet 因特网通信域,跨机器进程间通信; af_unix af_loca 本机中进程与进程间通信; af_inet6 因特网通讯,是ipv6类型;af_netlink 用户进程与内核之间的通信;type套接字类型; sock_stream 流式套接字 sock_dgram 数据报套接字sock_raw 原始套接字protocol (协议) 参数总是0;18.协议结构体通用的协议结构体 struct sockaddr sa_family_t sa_family; char sa_data14; internet 协议结构体strcut socaddr_inu_short sin_family; /通信域u_short sin_port;/端口号struct in_addr sin_addr;/ip地址char sin_zero8;/8个没用的字节;用于与通用结构体大小保持一致;internet address 结构体;struct in_addrin_addr_t s_addr;19.给结构体初始化;memset(struct struct1 *strptr, char, sizeof(struct1);bzero(struct struct2*strptr, sizeof(struct2);20.bind () 函数 绑定将地址结构体绑定到套接字(socket)描述符上;(1);地址结构体以包含ip和端口号;(2)想系统申请端口资源;(3)不能将同一个地址结构体绑定到同类型的套接字上;(4)对于发送端,可以不绑定,也可以绑定;如果不绑定,系统自动绑定;并且分配端口;但是对于接收端,必须要绑定;函数原型int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);返回值 成功返回0;不成功返回-1;参数解析;sockfd 用socket 函数时返回的类似文件描述符的值;addr 定义的struct sockaddr addr;addlen sockaddr_in 结构体的大小;21.listen()函数监听链接的套接字,将自己的套接字变成被动连接类型;函数原型 : int listen(int sockfd, int backlog);返回值: 成功 0;错误-1;参数解析:sockfd socket 函数的返回的类似文件描述符;backlog 等待建立链接的客户端数量: 一般设定5-10个;22.accept()函数等待对方主动链接;也就是等待对方的connect()主动链接;函数原型int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);返回值 成功返回一个新的类似文件描述符的东西;也就是用connect()激活的accept()的那个端口号;错误返回-1;参数解析;sockfd 自己调用socket ()函数的返回的类似文件描述符addr 定义一个结构体用于接收对

温馨提示

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

评论

0/150

提交评论