검색결과 리스트
통신/TCP_IP에 해당되는 글 3건
- 2020.10.12 HTTP 3핸드 쉐이킹 캡쳐
- 2014.10.15 Ethernet, IP, TCP, UDP Frame
- 2014.10.15 TCP/IP 4 계층
글
HTTP 3핸드 쉐이킹 캡쳐
스트림 데이터를 받는데,
3핸드쉐이킹 후에 데이터를 주고 받는 것을 캡쳐해 봤다.
HTTP REST API의 GET으로 보낼 때, HEX 값 같은 것이 아닌 문자열을 주고 받는 것을 확인하였다.
위에
'빨강 {' 이 3핸드 쉐이킹이고
'빨강 -' 가 REST API의 GET, 밑에 빨강 박스가 그 내용이다.
'통신 > TCP_IP' 카테고리의 다른 글
Ethernet, IP, TCP, UDP Frame (0) | 2014.10.15 |
---|---|
TCP/IP 4 계층 (0) | 2014.10.15 |
글
Ethernet, IP, TCP, UDP Frame
------- Ethernet과 IP, TCP, UDP Header
------- Ethernet Frame
Ethernet frame은 다음과 같이 몇몇 타입이 있다.
- Ethernet II
- IEEE 802.3
- IEEE 802.2 Logical Link Control (LLC) frame
- IEEE 802.2 Subnetwork Access Protocol (SNAP) frame
--- Ethernet II
DEC, Intel, and Xerox에 의해 만들어졌으며,
DIX Ethernet 이라고도 불린다
첫 번째 필드엔 목적 MAC주소,
두 번재 필드엔 보낸 MAC주소,
세 번째 필드엔 Ether type이라고 Ethernet 프로토콜 타입,
네 번째 필드엔 정보,
다섯 번째 필드엔 CRC(cyclic redundancy check) 또는 FCS(Frame Check Sequence)라고
오류 검출에 쓰인다.
(출처 : http://en.wikipedia.org/wiki/Ethernet_frame)
--- IEEE 802.3
Novell 사에서 IPX protocol용으로 만들어졌다.
Ethernet II와 흡사한 구조로 세 번재 필드인 EtherType 대신 Length 이다.
--- IEEE 802.2 Logical Link Control (LLC) frame
OSI 계층 구조에서만 사용하는 Frame으로 거의 사용하지 않는다.
토큰링이 이 구조를 사용한다.
--- IEEE 802.2 Subnetwork Access Protocol (SNAP) frame
OSI 계층 구조에서 사용한다. TCP/IP가 주류므로 OSI는 잘 사용하지 않는다.
AppleTalk이 이 구조를 사용한다.
--- IEEE 802.1Q tag
VLAN (virtual local area network) 서비스에 대한 규약으로 Ethernet frame 들에 포함하고 있는데,
데이타 링크 계층(TCP/IP) or 네트워킹 계층(OSI)인 라우터나 스위치 등에서 운영되는 것으로,
브로드캐스트 필터링, 보안, 주소 축약, 트래픽 흐름 관리, QoS 등에 사용된다고 한다.
VLAN은 Ethernet frame에 Source Address 와 EtherType 또는 Length fields 사이에 위치하고 있거나,
EtherType 또는 Length fields 에 위치하고 있다.
처음 2 byte (2 octets)에는 Tag Protocol Identifier (TPID) 값이 0x8100으로 되어 있다.
------- Ethernet Frame 구조체
linux 환경
/usr/include/linux/if_ether.h
/usr/include/net/ethernet.h
위치에서 확인할 수 있다
|
|
--- 데이터 타입은
/usr/include/i386-linux-gnu/sys/types.h 에 있다.
--- ETH_ALEN 값은
/usr/include/linux/if_ether.h 에 있다.
--- type의 종류는
/usr/include/net/ethernet.h 에 있다.
더 많은 type은 /usr/include/linux/if_ether.h를 참고...
------- IP Header 구조체
http://en.wikipedia.org/wiki/IPv4 참고
/usr/include/netinet/in.h 에 프로토콜에 타입
/usr/include/netinet/ip.h 에 IP구조체가 정의 되어 있다
struct iphdr
{
#if __BYTE_ORDER == __LITTLE_ENDIAN
unsigned int ihl:4; //헤더 길이
unsigned int version:4; //IP version 4
#elif __BYTE_ORDER == __BIG_ENDIAN
unsigned int version:4; //IP version 4
unsigned int ihl:4; //헤더 길이
#else
# error "Please fix <bits/endian.h>"
#endif
u_int8_t tos;
u_int16_t tot_len;
u_int16_t id;
u_int16_t frag_off;
u_int8_t ttl;
u_int8_t protocol;
u_int16_t check;
u_int32_t saddr;
u_int32_t daddr;
/* The options start here. */
};
------- TCP Header 구조체
/usr/include/netinet/tcp.h
/usr/include/linux/tcp.h
에 위치해 있다.
struct tcphdr
{
u_int16_t source; //source port
u_int16_t dest; //destination port
u_int32_t seq; //sequence number
u_int32_t ack_seq; //acknowledgement number
#if __BYTE_ORDER == __LITTLE_ENDIAN
u_int16_t res1:4; //(unused)
u_int16_t doff::4; //data offset
u_int16_t fin:1;
u_int16_t syn:1;
u_int16_t rst:1;
u_int16_t psh:1;
u_int16_t ack:1;
u_int16_t urg:1;
u_int16_t res2:2;
#elif __BYTE_ORDER == __BIG_ENDIAN
u_int16_t doff::4; //data offset
u_int16_t res1:4; //(unused)
u_int16_t res2:2; //(unused)
u_int16_t urg:1;
u_int16_t ack:1;
u_int16_t psh:1;
u_int16_t rst:1;
u_int16_t syn:1;
u_int16_t fin:1;
#else
#error "Adust your <bits/endian.h> defines"
#endif
u_int16_t window; //window
u_int16_t check; //checksum
u_int16_t urg_ptr; //urgent pointer
};
'통신 > TCP_IP' 카테고리의 다른 글
HTTP 3핸드 쉐이킹 캡쳐 (0) | 2020.10.12 |
---|---|
TCP/IP 4 계층 (0) | 2014.10.15 |
글
TCP/IP 4 계층
------- TCP/IP 4계층과 OSI 7계층
- TCP/IP 4계층은 인터넷 모델이라고도 한다.
레벨 | 계층 | 기능 |
4계층 Application | 응용 계층 프로토콜 : HTTP, FTP, Telnet, DNS, SMTP | OSI 7계층의 5, 6, 7계층에 해당한다. TCP/IP 기반의 응용프로그램을 구분할 때 사용한다. |
3계층 Transport | 전송 계층 프로토콜 : TCP, UDP | OSI 7계층의 4계층에 해당한다. 통신 노드 간의 연결을 제어하고, 자료의 송수신을 담당한다. |
2계층 Internet | 인터넷 계층 프로토콜 : IP, ARP, RARP, ICMP, OSPF | OSI 7계층의 3계층에 해당한다. 통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅 기능을 담당한다. |
1계층 Network Interface | 네트워크 인터페이스 계층 프로토콜 : Ehternet, Token Ring, PPP | OSI 7계층의 1, 2 계층에 해당한다. CSMA/CD, MAC, LAN, X.25, 패킷망, 위성 통신, 다이얼 업 모뎀 등 전송에 사용된다. |
'통신 > TCP_IP' 카테고리의 다른 글
HTTP 3핸드 쉐이킹 캡쳐 (0) | 2020.10.12 |
---|---|
Ethernet, IP, TCP, UDP Frame (0) | 2014.10.15 |