일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- GIT
- CI/CD
- 다이나믹프로그래밍
- 브루트포스
- 역방향 반복자
- 그래프
- 그리드 알고리즘
- 그리드
- HTTP
- 스프링
- BFS
- 컴퓨터 네트워크
- SQL
- dfs
- 트리
- github action
- 분할정복
- 백준
- 도커
- 다이나믹 프로그래밍
- 이분탐색
- AWS
- 자료구조
- TCP
- 분할 정복
- 순열
- Spring
- 재귀
- 자바
- 알고리즘
- Today
- Total
코딩성장스토리
컴퓨터 네트워크 개념 정리(CH.2 Application Layer) 본문
Application Layer
저번 파트는 네트워크 전반적인 개념을 설명했으면
이번 파트는 OSI 계층의 Application Layer 에 대해서 알아 보자

Application Layer에는 다양한 network App 이 존재한다. (ex- social networking , Web ,text messaging , e-mail ,multi-user network games ,streaming stored video (YouTube, Hulu, Netflix) , P2P file sharing)
network app 들이 서로 통신 하는 방식은 크게 두 가지가 있다.
1.client-server service (Client-server paradigm) 2. p2p service (Peer-peer architecture)
client-server service | p2p service |
고정 IP를 가진 서버는 클라이언트에게 요청을 받 고, 서버는 클라이언트에게 서비스를 제공한다. 서버는 항상 동작한다. 클라이언트 끼리는 직접적으로 통신하지 않는다 | P2P 구조에서는 서버가 존재하지 않는다. peer라는 임의의 호스트 쌍이 서로 직접 통신한다. 특정 서버를 통하지 않고 호스트가 직접 통신한다. P2P 구조에서는 참여 호스트가 항상 동작하도록 요구하지 않는다. 참여 호스트는 자신이 네트워크로 들어왔을 때 주소를 교환한다. |
웹, 파일전송, 원격로그인, 전자메일 | 그누텔라 Gnutella |
그럼 이제 어떻게 Application layer에서 다른 컴퓨터 Application layer로 데이터를 보내는지 알아보자 (이해 안되도 넘어가기-많은게 필요하고 세부적인 것은 뒤에 다룬다.)
여기서 첫번쨰로 필요한게 소켓(socket) 이다
socket이란?
네트워크에서 프로세스로 데이터를 전달하며, 또한 프로세스에서 네트워크로 데이터를 전달하는 출입구역할을 함
대이터를 보내기 위해선 보내고자 하는 주소가 있어야 한다.
여기서 두번쨰로 필요한게 ip와 port 다.
HTTP : 80 FTP : control - 21, data - 20 SMTP : 25 등 각 프로토콜마다 포트가 지정되어 있고 컴퓨터 ip 에 통신한다
그리고 이런 HTTP,FTP,SMTP에 적절한 Transport layer service 도 적용하여야 한다.
대표적 으로 TCP 와 UDP 이다.
TCP 와 UDP 란?
- TCP -연결형, 신뢰할수있는 데이터 전송을 보장, 흐름/혼잡제어 해줌, 보안안함
- UDP -비연결형, 완전한 데이터 전송 보장안함, 빠름, 영상 스트리밍 회사에서 이용
왜 application layer 인데 transport layer 가 나오는지 이해가 안될 거 같아 예시를 든다
TCP 사용하는 network app
HTTP는 웹 객체를 전송하기 위한 프로토콜 ,SMTP는 메일 전송을 위한 프로토콜, FTP는 파일 전송을 위한 프로토콜 모두 Data loss가 일어나면 안되는 것들이기 때문에 신뢰성을 중시하는 TCP 사용
UDP 사용하는 network app
주로 빠르게 보내야하는 영상 스트리밍
즉 어떤 APP의 특징에 따라 transport layer service 적용이 달라진다.
그럼 이제 우리가 주로 사용하고 있는 HTTP에 대해서 알아보자
HTTP란? - web에서 사용하는 hypertext transfer protocol
TCP 사용 하고 stateless 하다.
HTTP 연결에는 두 가지 타입이 있다.
비영속성과 영속성이다. 두가지 차이를 알아 보자
non-persistent HTTP | persistent HTTP |
한 번의 연결 시 하나의 web 객체만 보낼 수 있 다. 요청하는 클라이언트가 많아질 때 서버에 심각 한 부담을 줄 수 있다. | 한 번의 연결에 여러개의 web 객체를 보낼 수 있다 |
HTTP 에서 정해진 request와 response 규칙이 있다 . 참고 하면 좋다.
Request
Response
HTTP에서 stateless의 의미
연결 상태정보를 유지하지 않는다는 것을 의미한다. 즉 과거의 상태에 대하여 기억하지 않는다.
하지만 우리가 사용하는 web에는 로그인 기능도 있고 사용자의 정보를 기억하고 있어야 할 떄가 있다 이럴 경우 쿠키를 사용한다.
쿠키는 사용자에게 쿠키를 주고 그 사용자는 다음 요청 때 쿠키를 들고 요청한다. 그러면 서버는 사용자 식별이 가능해진다.
Web caches (proxy servers) 에 대해서도 알아보자
Web Cache(캐시)이란?
오리지널 웹 서버와 클라이언트 중간에 있는 서버 client가 요청한 것이 웹 캐시에 존재한다면 오리지널 웹 서버에 요구하지 않고 웹 캐시가 전송한다
Web Cache(캐시)의 장점
① 클라이언트의 요구에 대한 응답시간을 줄일 수 있다.
② 오리지널 서버의 트래픽을 줄일 수 있다.
③ 빠른 콘텐츠 분배를 위한 기반구조를 제공한다.
즉 우리는 webcache를 이용해 멀리있는 origin server에 통신하지 않아도 정보를 가져올 수 있다.
그런데 web cache랑 origin server의 내용이 다를 수 있다 . 이럴 경우를 위해 조건부 get이 있다.
조건부 GET
캐시서버와 오리지널 서버의 동기화가 필요하므로, 조건부 GET을 이용해 최신상태인지를 확인
SMTP - 이메일 메시지를 mail server에 보내기 위한 프로토콜
HTTP와 SMTP 비교
HTTP는 pull 프로토콜이다. 클라이언트가 요청한 것을 서버가 전송해준다.
SMTP는 push 프로토콜이다. 클라이언트가 요청하지 않았는데도 서버가 전송해준다. 35. mail 접속 프로토콜 POP3, IMAP, HTTP
DNS (Domain name System) -ip 주소를 사용자가 식별하기 좋게 변환
도메인 사용하는 이유
각 웹 사이트마다의 IP 주소를 기억하기는 어렵다. 그래서 주소를 기억하기 위해 나온 것이 도메인 네임이고, DNS는 도메인 네임을 IP 주소로 바꿔 준다.
DNS는 분산되어 있고 계층구조를 띄고 있다. 종류를 확인해 보자
- Local DNS serverDNS 계층에는 속하지 않는다. host와 가장 가까운 DNS이다. -
- Root DNS server 계층의 최상위 DNS이다.local DNS server에게 host가 요청한 정보가 있지 않으면 다음은 root DNS로 간다. -
- TLD DNS server com, org, net, edu 등 all top-level country domains kr, uk, fr, ca, jp, 등 를 책임진다. -
- Authoritative DNS server (DNS server) 권위적 기관 회사의 DNS server
DNS query의 흐름 모델 2가지(그림)
1.iterated query (반복적 질의)
local DNS에 없으면, local DNS가 root DNS에 게 질문 root DNS에도 없으면, local DNS가 TLD DNS에 질문 TLD 에도 없으면 local DNS가 authoritative 에 질문
2.recursive query(재귀적 질의)
local DNS에 없으면, local DNS가 root DNS에 질문 root DNS에 없으면, root DNS는 TLD DNS 에 질문 TLD DNS에 없으면, TLD DNS는 authoritative에 질문
DNS format이 가지는 4개의 정보
- question record: 질의에 대한 name, type field들을 포함
- answer record : 응답 메세지에서만 사용되며 여러개의 RR을 보낼 수 있다. -
- authority record : 질의의 대한 인증 권한이 있는 서버 정보를 제공(누가 권리를 가지고 있는지) -
- additional record : 다른 도움이 되는 추가정보 40-1. RR format - name(도메인이름), value(IP주소), type(서버type), ttl(Time To Line
'CS' 카테고리의 다른 글
컴퓨터 네트워크 개념 정리(CH.06 The Link Layer and LANs) (0) | 2022.12.03 |
---|---|
컴퓨터 네트워크 개념 정리(CH.05 Network Layer:Control Plane) (0) | 2022.12.03 |
컴퓨터 네트워크 개념 정리(CH.4 Network Layer:Data Plane) (2) | 2022.11.26 |
컴퓨터 네트워크 개념 정리(CH.3 Transport layer) (0) | 2022.11.26 |
컴퓨터 네트워크 개념 정리 (CH.1 네트워크란) (2) | 2022.11.26 |