개발세발보안중
TCP 본문
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 |