일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- oracle
- 이클립스
- svn
- HTTP
- db
- Server
- Tomcat
- 자바스크립트
- 톰캣
- 마이바티스
- 모바텀
- 상태코드
- Linux
- Redis
- Javascript
- 보안
- git
- java
- IntelliJ
- JSON
- DBeaver
- JQuery
- 인텔리제이
- 자바문법
- SQL
- 디비버
- mybatis
- Eclipse
- 오라클
- 자바
- Today
- Total
JongTachi의 개발 블로그
3. 네트워크의 공통 언어 TCP/IP (네트워크의 공동 규칙).Chapter_3 본문
3-17 포트 번호로 애플리케이션에 할당한다.
1) 포트 번호의 역할
호스트에서 동작하는 애플리케이션에서 데이터를 배분하기 위해서는 각각의 애플리케이션을 식별할 수 있어야 한다. 포트번호란 TCP/IP의 애플리케이션을 식별하는 식별 번호로, 이 뒤에 설명할 TCP 또는 UDP 헤더에 지정한다. 포트 번호는 16비트 수치이고 지정 범위는 0~65535이다.
명칭 | 포트 번호 범위 | 의미 |
웰노운 포트 | 0~1023 | 서버 애플리케이션용으로 예약된 포트번호 |
등록된 포트 | 1024 ~ 49151 | 자주 이용되는 애플리케이션의 서버 쪽 포트번호 |
동적/사설 포트 | 49152 ~ 65535 | 클라이언트 애플리케이션용 포트번호 |
2) 웰노운 포트 번호로 웹브라우저의 요청을 기다린다.
여기서 중요한 것은 웰노운 포트 번호이다. 웰노운 포트 번호는 미리 정해져있다. 서버 애플리케이션을 실행하면, 웰노운 포트 번호로 클라이언트 애플리케이션의 요청을 기다린다.주요 웰노운 포트 번호는 우리가 자주 보는 포트 번호이므로 밑에 표를 참고하길 바란다.
프로토콜 | TCP | UDP |
HTTP | 80(월드 와이드 웹 HTTP) | - |
HTTPS | 443(TLS/SSL 방식의 HTTP) | - |
SMTP | 25 | - |
POP3 | 110 | - |
IMAP4 | 143 | - |
FTP | 20/21 | - |
DHCP | - | 67/68 |
3) 등록된 포트로 식별한다.
등록된 포트는 웰노운 포트 이외에 자주 이용되는 포트로만 알고있으면 된다.
4) 동적/사설 포트로 식별한다.
동적/사설 포트는 애플리케이션을 식별하기 위한 포트 번호이다. 다른 포트들과 달리 미리 정해져 있지 않고 클라이언트 애플리케이션이 통신할 때 동적으로 할당된다.
3-18 확실하게 애플리케이션의 데이터를 전송한다.
1) TCP란?
TCP란 신뢰성 있는 애플리케이션 간의 데이터 전송을 하기 위한 프로토콜이다.
TCP를 이용하면, 애플리케이션 프로토콜에는 신뢰성을 확보하기 위한 구조를 넣어 둘 필요가 없다. 즉 알아서 구축 되어있다는 의미.
2) TCP에 의한 데이터 전송 절차
TCP에 의한 애플리케이션 간 데이터 전송은 다음과 같이 이루어진다.
- TCP 커넥션 맺기
- 애플리케이션 간 데이터 송수신
- TCP 커넥션 끊기
커넥션 맺기
우선 먼저 확인해야 할 것은 데이터를 송수신 하는 애플리케이션 간의 통신이 정상적으로 이루어질 수 있는지 확인해야 한다. 이 확인 프로세스는 3웨이 핸드 쉐이크(커넥션 맺기)라고 한다.
애플리케이션 간 데이터 송수신
애플리케이션이 다루는 데이터를 TCP로 송신하기 위해서는, 애플리케이션의 데이터에 애플리케이션 프로토콜 헤더와 TCP 헤더를 추가할 필요가 있다. 이를 TCP 세그먼트라고 표현한다. 이때 애플리케이션의 데이터 크기가 크면 분할하여 복수의 TCP 세그먼트로서 전송한다. 어떻게 분발했는지는 TCP 헤더에 기술되고, 목적지에서 차례대로 원본 데이터로 조립한다. 또한, 데이터가 도착하면 받았다고 확인해준다. 데이터 수신 확인을 ACK라고 부른다. 만약 일부 데이터가 제대로 도착하지 않았다면 데이터를 재전송한다. 또한 네트워크가 혼잡하면 데이터 전송 속도를 제한한다. 이런 데이터 전송 구조를 플로우 제어라고 한다.
TCP 커넥션 끊기
마지막으로 애플리케이션의 데이터 전송이 모두 끝나면 알아서 TCP 커넥션을 끊는다.
'Network' 카테고리의 다른 글
[Network] GET, POST 정의 및 특징 (0) | 2024.02.21 |
---|---|
[Network] telnet, ipconfig 안 될 때(telnet client) (0) | 2023.06.23 |
3. 네트워크의 공통 언어 TCP/IP (네트워크의 공동 규칙).Chapter_2 (0) | 2022.06.04 |
3. 네트워크의 공통 언어 TCP/IP (네트워크의 공동 규칙).Chapter_1 (0) | 2022.05.24 |
2. 네트워크를 만드는 것 (0) | 2022.05.16 |