4계층에서 하는일 : 프로그램과 프로그램을 연결하는 일
- 전송 계층 : 송수신자의 프로세스를 연결하는 통신 서비스를 제공
프로제스 : 메모리에서 동작중인 프로그램
전송 계층은 신뢰성, 흐름 제어, 여러 서비스 제공
tcp >>> 연결 지향 전송 방식(신뢰성)
udp >>> 비연결 지향 전송 방식(스피드한)
1. 4계층 프로토콜
(1) TCP : 연결지향 프로토콜, UDP보다 안전하지만 느리다...

soruce port : 출발지 포트
destination port : 목적지 포트
sequence number
acknowledgment number
----------------------------------------------------------------------------------------------
tcp flags : TCP연결 상태를 형태를 나타냄
U >>> 긴급비트 (내가 지금 보내는 데이터가 우선순위가 높다 지정)
A >>> 승인비트 (물어본것에 대한 응답 및 승인)
P >>> 푸시비트 (TCP버퍼와 상관없이 계속해 데이터를 밀어 넣겠다)
R >>> 초기화 비트(문제가 발생해 연결을 리셋하자)
S >>> 싱크비트( 동기화 비트, 상대방과 연결을 시작할떄 사용하는 플래그 )
F >>> 종료비트( 데이터를 다 주고받은 후 연결을 끊을때 사용 )
----------------------------------------------------------------------------------------------
window : 데이터를 받을 사이즈 알려줌
TCP를 이용한 통신 과정
- 연결 수립 과정 : 3Way Handshake라고 부름
클라이언트가 서버에 요청 패킷 보냄(s) >>> 서버가 클라이언트 요청을 받아들이는 패킷 보냄(s+a) >>> 클라이언트는 이를 최종 수락후 패킷을 보냄(a)
- 데이터 송수신 과정
보낸 쪽에서 또 보낼시는 seq, ack번호가 그대로(p, a)
받는 쪽에서 seq번호는 ack번호가 된다(p, a)
받는 쪽에서 ack번호는 받은 seq+받은 데이터 크기(이제는 페이로드가 있기 떄문)(a)
tcp상태 전이도 : tcp연결 상태 변화
listen 상태 >>> 포트 번호를 열어놓고 있는 상태(서버가 클라이언트를 요청을 계속 듣고 있는 상태)
establshed >>> 연결이 서로 수립이 된 상태(3handshake 가 끝나면 해당 상태가 되고 통신이 가능해짐)
(2) UDP : 비연결지향 프로토콜

soruce port : 출발지 포트
destination port : 목적지 포트
length : udp프로토콜 헤더길이 + 페이로드
checksum : 프로토콜 이상유무 체크
UDP프로토콜을 사용하는 대표적은 프로그램
DNS서버 : 도메인을 물으면 IP를 알려주는
tftp서버 : udp로 파일을 공유하는 서버(동영상 스트리밍)
RIP프로토콜 : 라우팅 정보를 공유하는
2.포트 번호 : 4계층에서 사용하는 주소
특정 프로세스간 통신을 위해 사용
하나의 포트는 하나의 프로세스만 사용가능!!!(하나의 프로세스가 여러 개의 포트를 사용하는 것은 가능)
유명한 포트
FTP : 20,21
SSH : 22
HTTP : 80
DNS : 53
오라클 db서버 : 1521
mysql 서버 : 3306
일반 사용자들이 사용하는 dynamic포트 : 49152 ~ 65535
3. 프로그램의 연결 정보
현재 포트 활성 여부를 나타내는 활성 연결 테이블 명령어
netstat -ano

'cs기초 지식 정리 > 네트워크' 카테고리의 다른 글
| 네트워크 살펴보기 (0) | 2024.10.30 |
|---|---|
| 네트워크 기본 구조 (1) (0) | 2024.10.29 |
| 네트워크(4) (0) | 2023.10.29 |
| 네트워크(2) (1) | 2023.10.25 |
| 네트워크(1) (2) | 2023.10.23 |