Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 구현
- 네트워크모델
- 코딩테스트
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 스프링
- 싸피
- Dynamic Programming
- Lan
- 백준
- BAEKJOON
- 정렬
- Spring
- 개발자
- 알고리즘
- 클라이언트
- 네트워크
- 전송계층
- Java
- 프로토콜
- IP
- 개발공부
- 서버
- SSAFY
- 다이내믹프로그래밍
- DP
- 알고리즘공부
- 자바
- cs공부
- TCP
- 코딩공부
Archives
- Today
- Total
오늘 하루, develop
#13. [4계층] TCP 프로토콜이란? (개념, 구조) 본문
♦ TCP프로토콜
전송 제어 프로토콜(Transmission Control Protocol, TCP)은 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 통신을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다.
- TCP의 안정성을 필요로 하지 않는 애플리케이션의 경우 일반적으로 TCP 대신 비접속형 사용자 데이터그램 프로토콜(UDP)을 사용한다.
- TCP는 UDP보다 안전하지만 느리다.
♦ 구조
TCP의 가장 일반적인 길이는 20byte, 최대 60byte이다.
- Source Port (2byte)
- Destination Port (2byte)
- Sequence Number (4byte)
- Acknowledgment (4byte)
- Offset (0.5byte) : 헤더의 길이 / 4 = 일반적으로는 5
- Reserved ( 0.5byte ) : 사용하지 않음
- TCP Flages (1byte) : 이어서 자세히 설명
- Window (2byte) : 남은 TCP 버퍼 공간. 데이터를 얼마나 더 보내도 되는지 상대방에게 알려줄 때 사용
- Urgent Pointer (2byte) : 어디서부터가 중요한 데이터인지 표시
- TCP Options :일반적으로 안 붙고, 붙더라도 4byte씩 붙는다.
♦ TCP 플래그
TCP는 통신하며 계속 연결 상태를 확인함. 여러 가지 형태로 데이터를 보냄. 어떤 기능을 하는 통신인지 구분하는 것이 TCP 플래그
U
Urgent Flag
- 긴급 비트
- 우선순위가 높은 데이터를 보내는 경우
- Urgent Pointer(어디서부터가 중요한 데이터인지 표시)와 세트
A
Ack Flag
- 승인 비트
- '데이터 보내도 돼', '연결해도 돼' 와 같은 상황에 사용
P
Push Flag
- 밀어넣기 비트
- TCP 버퍼가 일정 크기만큼 쌓여야 패킷을 전송하는데 이것과 상관 없이 계속 데이터를 밀어넣겠다는 뜻
R
Reset Flag
- 초기화 비트
- 상대와 연결이 된 상태에서, 추가적으로 데이터를 주고받으려고 하는데 문제가 발생했을 때와 경우 연결을 초기화할 때 사용
S
Syn Flag
- 동기화 비트
- 상대방과 연결을 시작할 때 무조건 사용하는 플래그
- 가장 중요한 플래그
F
Fin Flag
- 종료 비트
- 연결을 끊을 때 사용
출처
'네트워크' 카테고리의 다른 글
#15. [4계층] TCP 상태전이도 (0) | 2024.05.07 |
---|---|
#14. [4계층] TCP 통신과정 - 3 way handshake, 데이터 송수신 (0) | 2024.05.07 |
#12. [4계층] UDP프로토콜이란? (0) | 2024.05.07 |
#11. [4계층] 포트번호의 개념, 분류, 확인 방법 (0) | 2024.05.07 |
#10. [3계층] 패킷 전송과정 (라우팅테이블, IPv4조각화) (0) | 2024.05.07 |