개발세발보안중

TCP 본문

Network Security and IDS

TCP

채영채영 2022. 9. 27. 14:34

TCP 서비스

- UDP와 같은 네트워크 계층(IP)을 이용
- UDP와는 완전히 다른 서비스를 응용 계층에 제공
- 연결지향의 신뢰성있는 바이트스트림 서비스를 제공
 > TCP provides a connection-oriented, reliable, byte stream service

 

1) 연결-지향 (connection-oriented) 서비스
 - 두 응용 프로세스 (보통 클라이언트, 서버)가 데이터를 교환 하기 전에 서로 TCP 연결을 확립함
 - Three-way handshake

2) 신뢰성(Reliability) 서비스
1. 정보단위인 세그먼트를 IP로 전송함 
2. TCP는 세그먼트를 보낼 때마다 타이머를 설정
3. TCP가 연결의 상대편으로부터 데이터를 받으면 확인응답을 보냄
4. end-to-end checksum : TCP는 헤더와 데이터에 검사합(checksum)을 함
5. TCP 세그먼트는 IP 데이터그램 형태로 전송되므로, 순서를 지키지 않고 수신측에 도착할 수 있음
6. IP는 라우팅 과정에서 중복이 발생해도 이를 허용하나, 수신측 TCP는 중복된 데이터를 반드시 폐기함
7. TCP는 흐름 제어 (flow control)를 제공함

 

3) 바이트 스트림 서비스 (bytestream service)
- TCP 연결을 통해서 양방향의  8-bit byte stream이 교환됨 (응용에 full-duplex 서비스를 제공)
  - TCP 연결을 통해서 양방향의 8-bit byte stream이 교환
  - TCP는 레코드 구분자 삽입 기능을 전혀 지원하지 않음
  - TCP는 바이트에 대한 해석을 전혀 하지 않음 

(4). congestion control

-> 내가 보내는 전송속도를 조절하는 것.

 

TCP 헤더

> 포트 번호 
   - TCP 세그먼트를 송신하고 수신하는 응용을 구분하기 위해 사용
   - IP 주소 하나와 포트 번호 하나의 조합을 소켓이라고 함

- 순서 번호
   - 송신 측의 TCP로부터 수신 측의 TCP로 가는 데이터 스트림의 바이트를 구분하기 위해 매 바이트에 붙여진 번호
   - 32비트 부호 없는 번호로서 0부터 2^32 -1 을 초과하면 다시 0부터 시작
   - 새로운 연결을 확립하는 과정에서, 세그먼트에 SYN 플래그가 설정될 경우, 순서 번호 필드에는 호스트가 연결에 선택한 초기 순서 번호을 기재함 

 

- 확인 응답 번호 (acknowledgement number ; ACK number) 필드
   - 수신한 마지막 바이트의 순서 번호 +1을 기재함
   - 이 필드는 ACK플래그가 설정 되어 있을 때만 유효 

- TCP에서 순서 번호와 확인 응답 번호의 특징
   - TCP는 각 방향으로 데이터를 흘려보내는 full-duplex 서비스를 응용에 제공함
   - TCP는 Selective ACK나 Negative ACK를 지원하지 않는 슬라이딩 윈도우 프로토콜의 일종
   - CUmulative ACK : 어디까지 전송이 완료되었는지 송신자에게 알림


- 4비트 헤더 길이 필드
   - '32비트 워드' 단위로 헤더의 길이를 명시함
   - 4비트밖에 안되므로, 60바이트 헤더로 길이가 제한됨

- 6개의 플래그 비트
   - URG 긴급 포인트가 유효함
   - ACK 확인응답 번호가 유효함
   - PSH 수신측은 데이터를 가능한 빨리 응용으로 보내야 함
   - RST 연결을 재설정 
   - SYN 연결을 초기화하기 위해 순서 번호를 동기화
   - FIN 송신 측이 데이터 전송을 종료함

- 검사합(checksum) 필드
   - TCP header와 TCP data에 모두에 대한 checksum
   - 필수 필드로서 송신 측에서 계산, 저장되고 수신 측에서 검사됨 
   - UDP 검사합과 같은 의사(pseudo)헤더를 이용하여 계산

- 긴급 포인터(URGent pointer) 필드
   - (데이터 필드 앞부분에 삽입된) 긴급 데이터의 크기를 나타냄
   - URG 플래그가 설정되어 있을 때만 유효
   - 송신 측이 상대편에게 긴급한 데이터를 보낼 수 있음
   - 거의 안 씀

 

IP + Port => socket으로 보냄

응용계층이 socket이라는 버퍼에 메시지를 넣으면 운영체제가 가져가서 TCP/IP를 이용하여 네트워크 전송

 

 

'Network Security and IDS' 카테고리의 다른 글

Sniffing and Spoofing  (0) 2022.10.22
TCP Connection Establishment and Termination  (1) 2022.10.08
UDP  (0) 2022.09.27
ARP(Address Resolution Protocol)  (0) 2022.09.27
네트워크 보안 3 Internet Protocol  (0) 2022.09.20
Comments