일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- AutoRuns
- snort 패턴
- HIDS
- VirusShare
- 공유 폴더 만드는법
- ViursTotal
- bintext
- 바이러스 웜 차이
- MalwareBazaar
- saa
- 보안관제 업무
- 악성 샘플 수집
- 동적 분석 도구
- 리팩토링
- 보안관제 업무절차
- 보안관제 업무유형
- 공유폴더만들기
- IAM
- 바이러스 웜 트로이목마
- 보안
- AWS
- 악성샘플수집
- 동적분석도구
- Exeinfo PE
- 스노트 룰 시그니처
- 악성샘플 사이트
- 악성샘플
- 지식기반탐지
- snort rule signature
- False Negatvie
- Today
- Total
배이빗의 공부 공간
TCP 와 UDP 본문
TCP란?
애플리케이션에서 보낸 데이터를 신뢰성 있게 수신 측에 전송을 보장하는 프로토콜
TCP 특징
1. 연결형 (connnection-oriented) 서비스로 연결이 성공해야 통신이 가능하다.
2. 데이터의 경계를 구분하지 않는다. (바이트 스트림 서비스)
3. 데이터의 전송 순서를 보장한다. (데이터의 순서 유지를 위해 각 바이트마다 번호를 부여)
4. 신뢰성 있는 데이터를 전송한다. (Sequence Number, Ack Number를 통한 신뢰성 보장)
5. 데이터 흐름 제어 (수신자 버퍼 오버플로우방지) 및 혼잡 제어(패킷 수가 과도하게 증가하는 현상 방지)
6. 연결의 설정(3-way handshaking)과 해제(4-way handshaking)
7. 전이중(Full-Duplex), 점대점(Point to Point) 서비스
TCP 헤더 구조
Source Port (16 bit):
- 출발지 포트번호
Destination Port (16 bit):
- 목적지 포트번호
Sequence Number (32 bit) :
- byte 단위로 순서화 되는 번호 (TCP 세그먼트의 첫번째 byte에 부여됨)이며 이것을 통해 신뢰성(3Way Handshake) 및 흐름제어(sliding Window) 기능을 제공
Acknowledgment Number (32 bit) :
- 수신하기를 기대하는 다음 byte 번호 (마지막으로 수신에 성공한 번호의 +1)
Offset (4 bit) :
- TCP 헤더 길이를 4바이트 단위로 표시한다. TCP헤더는 최소 20, 최대 60 바이트이다
Reserved (4 bit) :
- 예약된 필드, 현재 사용되지 않음
Window size (8 bit) :
- 자신의 수신 버퍼 여유용량 크기를 통보하여 얼마만큼의 데이터를 받을 수 있는지 상대방에게 알려주어 흐름제어를 수행하게 되는 필드
Checksum (16bit):
- TCP 세그먼트의 내용이 유효한지 검증하고 손상 여부를 검사 할 수 있다.
Urgent Pointer (16 bit):
- 현재의 순서 번호부터 긴급포인트에 표시된 바이트 까지가 긴급한 데이터임을 표시한다. (URG 플래그 있을 때만 사용)
Option (0~40 byte):
- 최대 세그먼트 사이즈 지정 등 추가적인 옵션이 있을 경우 표시한다.
Flags (8 bit):
- 제어비트(Control bits) 라고도 하며, 세그먼트의 종류를 표시하는 필드이다.
Flags 종류
종류 | 내용 |
Urgent | 긴급 비트, 긴급하게 처리해야 하는 데이터가 들어 있다는 뜻 |
Ack | 승인 비트, 받는 사람이 보낸 사람의 시퀀스 넘버에 TCP계층에서 길이 또는 데이터 양을 더한 것과 같은 ACK를 보냄 |
Push | 밀어 넣기 비트, 버퍼가 채워지길기다리지 않고 데이터를 전달함 |
Reset | 초기화 비트, 상대방과 연결이 되어있는 상태에서 어떤 문제 등이 발생하여 연결 상태를 리셋 하게 됨 |
Syn | 동기화 비트, 상대방과 연결을 시작할 때 무조건 사용되는 플래그 |
Fin | 종료 비트, 세션을 종료 시키는 데 사용 |
UDP 란?
- 인터넷에서 정보를 주고받을 때, 서로 주고받는 형식이 아닌 한쪽에서 일방적으로 보내는 방식의 통신 프로토콜
UDP 특징
- UDP는 TCP와 다르게 비연결성을 가진다
- 수신 측이 제대로 도착하였는지 확인 여부를 보장하지 않는 비신뢰성 서비스
- 사용자 데이터를 데이터 그램에 포함해 전송한다.
UDP 헤더구조
- UDP 헤더의 Checksum을 통해서(옵션) 헤더와 데이터 모두 포함한 사용자 데이터 그램 전체에 대한 오류를 탐지한다.
체크섬 필드에서 tcp와의 차이점
- 송신지에서 계산되고 목적지에서 검사됨
- 목적지에서 체크 섬 에러 발견 시, 즉시 폐기
- UDP에서 Checksum은 옵션으로 사용됨.
- TCP와 달리 에러복구를 위한 필드가 존재하지 않음
TCP vs UDP 차이점
TCP | UDP | |
연결 | 연결지항형 프로토콜 | 비 연결지향형 프로토콜 |
제어 | 흐름제어, 오류제어, 혼잡제어 | 없음 |
방향 | 양방향 전송 | 단방향전송 |
신뢰성 | 있음 | 없음(비교적 빠름) |
응용계층 | TELNET, FTP, SMTP , HTTP | DNSM, SNMP, TFTP, NFS |
단위 | 세그먼트 | 데이터그램 |