apue和unp的学习之旅01——网络基本概念
来源:互联网 发布:桐乡淘宝摄影基地 编辑:程序博客网 时间:2024/05/01 12:41
// 概念上的知识
1.尽管客户端与服务器之间使用某个应用协议通信,传输层却使用TCP(Transmission Control Protocol ,输控制协议)通信。
2.TCP和IP都是内核中协议栈。TCP/IP协议族,也成为网际协议族。采用TCP/IP协议族通信的任何网络都是网际网。
3.IP 属于网络层。
5.路由器是广域网中的架构设备。局域网(LAN,local area network),广域网(wide area network,WAN)
6当今最大的广域网是因特网,许多公司也构建自己的私用的广域网,它们既可以连接到因特网,也可以不连接到因特网。
7.计算机网络各层对等实体间交换的单位信息称为协议数据单元(PDU,protocol data unit)。
7.1 应用层对应的PDU可称为应用数据,还可以具体分为,TCP应用进程(使用tcp协议通信的程序)交换的数据是没有长度限制的单个双向字节流,UDP应用进程之间交换的是其长度不超过UDP发送缓冲区大小的单个记录(record)。
7.2 传输层实体间交换的PDU称为消息(message),其中TCP的PDU特称为分节(segment),消息或分节的长度是有限的。
7.3 每层的PDU除了用于承载紧邻上层的PDU(即承载数据)外,也用于承载本层协议内部通信所需的控制信息。
8.服务数据单元(SDU,service data unit)。除了最低层(物理层)外,每层的PDU通过由紧邻的下层提供给本层的服务接口,作为下层的服务数据单元(SDU)传递给下层,并由下层间接完成本层的PDU交换。
每层的PDU大小超过紧邻下层的最大SDU限制,那么本层还要事先把PDU划分为若干个合适的片段让下层分开载送,再再相反的方向把这些片段重组成PDU。
9.UDP比TCP更快取决于协议的实现上的工作不同,UDP所做的的简单,所以传输快。
10.unix的守护进程,是能再后台运行且不跟任何终端相关联的进程,一般服务器往往在系统工作期间一直运行,所以这要求我们添加一些代码,把服务器进程作为守护进程。// 代码上的知识
1.size_t 在32位的系统下一般定义为 unsigned int型,在64位系统下可以定义为unsigned long。
2.使用bzero函数清空一个结构体比memset更好,因为bzero只要2个参数,而memset有3个,所以memset更容易混淆参数位置而出错。
http://hi.baidu.com/lovelyhuhu/item/2b202ac92838b52d47d5c051这篇文章里不仅有bzero,menset,还有setmem函数的用法区别。
// linux命令的知识
1.netstat -i 提供网络接口的信息
2.ifconfig “某个接口名” 获得该接口详细信息
- apue和unp的学习之旅01——网络基本概念
- apue和unp的学习之旅03——套接字地址学习
- apue和unp的学习之旅02——理解常用协议的原理
- apue和unp的学习之旅07——多种边界条件的讨论
- apue和unp的学习之旅00——开始吧
- apue和unp的学习之旅04——基本套接字api
- apue和unp的学习之旅05——包裹函数
- apue和unp的学习之旅08——I/O复用
- apue和unp的学习之旅09——套接字选项
- apue和unp的学习之旅10——基本udp套接字编程
- apue和unp的学习之旅11——名字与数值地址转换
- apue和unp的学习之旅06——简单引出进程和信号的学习
- 《APUE》和《UNP》文件的编译和使用(转载)
- unbuntu下eclipse的unp.h和apue.h
- 【UNP】APUE和UNP前期准备与实例
- 重读UNP(UNIX网络编程)13章到31章笔记整理(结合TLPI和APUE两书的笔记整理)
- APUE(1)——UNIX基本概念
- 《UNIX环境高级编程》中apue.h的问题与《unix网络编程》中unp.h的问题
- Ubuntu虚拟机安装
- Android开发中 页面加载超大图片时出现OOM
- LeetCode Pascal's Triangle
- 地铁换乘
- linux 驱动学习-1th
- apue和unp的学习之旅01——网络基本概念
- IOS中的随机数arc4random方法
- mysql删除,插入,查询等语句的总结
- 参数个数不同的函数载体(C++)
- java利用JXL包操作Excel表
- OpenCv中改变图像尺寸
- 拓扑排序c++实现
- Uboot 内存初始化(2440)
- android:layout_gravity和android:gravity的区别