일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컴파일 타임 상수
- 쉘 스크립트
- intelij spring config
- allocationSize
- DTO
- BindingResult
- 런타임 상수
- 백준
- 프로그래머스
- 오블완
- API
- 메모리 구조
- @Autowired
- @SubscribeMapping
- JPA
- compgen
- 파이썬
- 편향된 지수
- JDBC
- Git
- application layer
- 쿠키
- 기본키 전략
- 커밋 되돌리기
- spring
- 리눅스
- 티스토리챌린지
- 알고리즘
- mysql
- m:n
- Today
- Total
둘셋 개발!
[네트워크] L4 Transport Layer 본문
Transport Layer의 역할
: end-to-end data 전송을 위한 논리적인 통신을 함
(end = 응용 프로그램)
- Ip 및 Port 번호로 식별해서 통신을 한다.
- Ip 계층에 대해 제어를 한다.
- 동적 Ip 주소관리
- Ip 변환
- Ip packet 흐름 제어 (L3인 network layer의 error control, flow control)
Transport Layer 종류
따로 연결을 하지 않고 application layer에서 내려준 데이터를 그대로 전송하는 UDP,
연결을 안전하게 한 뒤에 전송을 하는 TCP로 나눠볼 수 있다.
1. UDP (User Datagram Protocol)
- 사실상 IP의 기능만 하고, Application 계층에서 flow control 등의 기타구현을 함
-> 간단하게 checksum 정도만 확인하고 error control이나 flow control을 하지 않는 다는 것을 알 수 있음
- 장점
: Connection establishment 과정이 불필요함
: 헤더가 짧기 때문에 Packet header overhead가 적음
2. TCP (Transmission Control Protocol)
- process 간 three way handshake를 통해 연결을 하고 데이터를 전송함
- 특정 port로 connet establishment 메시지를 수신해서 연결을 하고 나서 socket과 port번호가 연동됨
-> sequence number: error control, flow control를 할 때 사용
-> Ack number: 다음번 수신 할 number을 보냄
-> Receive window: flow control 할 때 사용
DHCP (Dynamic Host Configuration Protocol)
: 특정 host에 대해 Ip를 동적으로 할당 하기 위한 프로토콜
- DHCP 의 필요성
: WIFI나 subnet 내 불특정 다수의 host에 대한 IP address를 편리하게 부여하기 위해
- 가능한 Ip address pool내에서 선택해서 요청 host에게 동적으로 할당함
- DHCP 시나리오
1. 특정 host가 새로 등장한다.
2. DHCP server로 Ip 주소를 요청한다.
3. 가능한 Ip address pool내에서 선택해서 요청 host에게 Ip 주소를 할당하는 response msg을 보낸다.
-> 255.2555.2555.2555의 Ip로 보낸다는 것은 모든 사람에게 보여지는 broadcasting을 한다는 것
모든 사람에게 보여지면 Ip 주소를 할당하는 DHCP 서버가 응답하는 구조임
NAT (Network Address Translation)
: subnet가 하나의 IP를 할당 받아서 해당 subnet의 여러 host들이 공통으로 사용!
내부적으로는 Ip를 따로 주소 외부로 나갈 때는 할당받았던 하나의 Ip를 사용
- 초기 Outgoing packet에 대햇 translation table 항목을 생성하고 port번호를 부여
- Internal network내 host를 감춤 (보안 기능)
- 절대적으로 수가 부족한 IP address를 국지적으로 사용할 수 있게 해준다. (사실 이 때문에 IPv6가 나왔지만 Ipv4에서 nat로 해결가능)
UPnP (Universal Plug and Play)
: 외부에서 접속이 필요한 서비스를 NAT 환경에서 지원하기 위한 프로토콜
- Private IP/port와 public IP/port를 미리 지정
Firewall
: internal network(서브넷 내부)와 internet의 경계를 짓는 존재
- Firewall의 목표 3가지
1. 보안과 서버 부하를 막기위해 모든 양방향 traffic이 firewall을 통해 지나가도록함
2. Local security policy에 듸해 규정된 허용 traffic만 통과시킴
3. Firewall 자체도 보안에 매우 강해야 함 (보안이 약하면 오히려 없는게 나음)
- Traditional Packet Filters
: 서브넷의 용도, 관리자의 의도에 맞게 적절하게 필터를 수동으로 정함
: IP와 port 번호를 조합하여 규칙을 생성
- Stateful Packet Filter
: 명확하게 Ip,port번호로 규칙을 생성하여 필터를 함
✏️ Check connection
: tranditional packet filters에 check connection이 0로 되어 있으면 stateful packet filter도 거쳐야함
'네트워크' 카테고리의 다른 글
[네트워크] Application Layer 2 (multimedia traffic, Streaming, CDN, RTP, SIP, QOS, Best-Effort Network) (0) | 2022.06.13 |
---|---|
[네트워크] Application layer 1 (Http, Cookies, Web Caching, FTP, SMTP, DNS) (0) | 2022.06.10 |
[네트워크] Protocol Function 2 (0) | 2022.06.03 |
[네트워크] Protocol Functions 1 (0) | 2022.06.03 |
[네트워크] Protocol의 뜻, 구조, 모델 (0) | 2022.05.17 |