FTP
FTP는 파일전송을 위해 두 개의 TCP 연결을 사용합니다. 여기서 핵심은 제어 연결과 데이터 연결을 구분하는 방식에 있습니다.
FTP는 두 개의 TCP를 동시에 사용합니다. FTP는 데이터를 전송할 때 제어 연결과 데이터연결을 분리해 아웃 오브 밴드로 제어 정보와 별도로 통로를 통해 전송이 됩니다.
웹 캐싱
웹 캐싱은 클라이언트가 웹 리소스를 로컬 저장소에 저장해 두고 재사용함으로써 성능을 향상하는 기법입니다. 캐시를 사용하면 웹 트래픽을 줄이고 페이지 로딩 속도를 개선할 수 있지만, 캐시된 데이터가 최신이 아닐 수 있다는 문제가 있습니다.
웹캐싱의 장점
캐싱은 객체에 저장해 두고, 이를 재사용함으로써 트래픽의 양을 줄이고 성능을 향상할 수 있습니다. 문제점은 캐시에 저장된 객체가 최신 정보가 아닐 수 있다는 문제입니다. 즉 로컬 캐시에 저장된 정보가 서버의 최신 정보와 다를 수 있습니다.
조건부 GET
이러한 문제를 해결하기 위해 HTTP에는 조건부 GET 요청을 제공합니다. 이는 클라이언트가 캐시에 저장된 객체가 최신인지 확인하기 위해 서버에 요청을 보내는 방식입니다. 조건부 GET 요청은 서버에 객체가 변경되었는지 확인한 후, 변경되었다면 최신 객체를 다운로드하고, 변경되지 않았다면 캐시된 객체를 계속 사용할 수 있도록 합니다.
다중화
주파수 분할 다중화 (FDM)
네트워크 링크의 주파수 대역을 여러 개의 연결이 공유하는 방식입니다. 각 연결은 고정된 주파수 대역을 할당받아 데이터를 전송합니다. 즉 여러 연결이 동시에 데이터를 전송하되, 서로 다른 주파수 대역을 사용함으로써 간섭을 방지하는 방식입니다.
시간 분할 다중화 (TDM)
시간을 일정한 주기로 나누어, 각 연결이 고정된 시간 슬롯을 할당받아 데이터를 전송하는 방식입니다. 네트워크 링크를 통해 여러 연결이 한 번에 사용되지 않고, 시간적으로 나누어서 사용됩니다. 이 방식은 모든 프레임 내에서 각 연결이 할당된 시간 슬롯에 데이터를 전송할 수 있도록 조정됩니다.
SMTP
수신 측 UA가 메일 메시지를 받기 위해 SMTP를 사용할 수 없는 이유는 SMTP는 메일을 보내는 프로토콜이므로 주로 메일을 전송할 때 사용합니다.
SMTP는 Push 방식을 동작하는 프로토콜입니다. 반면에 수신 측이 메일 메시지를 받는 방법은 Pull입니다. 메일을 받기 위해서는 수신자가 메일 서버에 접속하여 메일을 가져오는 방식이기에 POP3나 IMAP 같은 Pull 프로토콜을 사용하여 가져와야 합니다.
계층 프로토콜
프로세스 간 통신을 다루는 프로토콜은 서로 다른 호스트에서 동작하는 프로세스 사이에 논리적 통신을 제공합니다. 즉 다른 컴퓨터에서 실행되는 프로그램들 간의 통신을 처리하는 방식으로 이는 전송계층을 의미합니다. 이들은 서로 다른 호스트에서 실행되는 프로세스들 간의 데이터를 주고받기 위한 규칙을 정의합니다.
호스트 간의 논리적 통신을 제공하는 프로토콜은 네트워크 계층 프로토콜입니다. 다른 호스트 간의 논리적인 연결을 통해 데이터를 전송합니다.
즉 전송계층은 프로세스 사이의 논리적 통신을 제공하는 것이며 네트워크 계층 프로토콜은 호스트들 사이의 논리적 통신을 제공하는 것입니다.
데이터 전송 계산
대역폭 R = 1Mbps
전파 속도 v : 2.5 * 10^8
거리 d = 10000 = 10000 * 10^3 m
최대 대역폭 전파지연을 계산
전파지연 : 거리 / 전파속도
전파지연의 공식입니다.
10000km를 m로 바꾸면 10,000,000m입니다. 10,000,000 / 2.5 * 10^8 = 0.04초입니다.
전파 지연은 0.04초에 속합니다.
대역폭은 1Mbps = 1,000,000 이므로 이것을 0.04초랑 곱하면 40.000bits가 나오게 됩니다.
대역폭과 전파지연의 곱 해석
대역폭 지연 곱은 네트워크 내의 링크 상에 한 번에 전송할 수 있는 최대 양으로 어느 주어진 시간에 최대 네트워크로 얼마나 전할 수 있는지에 대한 물음입니다.
A가 B로 400,000 비트 파일 전송할 때 걸리는 시간
파일 크기 : 400,000 비트
전송 대역폭 : 1 Mbps(1,000,000bits per second)
전송 방식 : 파일을 하나의 메시지로 전송
전송 시간 = 파일 크기 / 대역폭
400,000 / 1,000,000 = 0.4sec
40,000비트씩 10개의 패킷을 나누어 전송하고 각 패킷을 전송한 후 수신자의 응답을 받은 후에야 다음 패킷을 전송할 수 있다면 모두 전송하는데 걸리는 시간
각 패킷의 크기 : 40,000비트
총 패킷 수 : 10개
전송속도 = 1Mbps (1,000,000bit per second)
전파 지연 시간 : 0.04초
매번 전송 시간 = 0.4초
RTT(왕복 시간 = 전파 지연 시간의 두배) = 0.08초
각 패킷 전송 후 ACK를 받기까지 걸리는 시간 : 0.4 + 0.08 = 0.48초
총 10개의 패킷이 있으므로 4.8초
웹 페이지 프로토콜
1.
웹페이지는 HTML 문서와 이미지 등의 추가 리소스로 구성됩니다. 웹 브라우저는 기본 HTML 파일과 함께 그 안에 포함된 이미지 파일을 따로 요청해야 합니다.
(만약 텍스트와 두 개의 이미지로 구성된 웹페이지를 요청할 경우) 일반적으로 클라이언트는 각 리소스마다 별도의 HTTP 요청을 보냅니다. 따라서 텍스트에 대한 하나의 요청과, 두 개의 이미지 파일에 대한 두 개의 요청, 총 세 개의 요청이 발생합니다.
2.
두 개의 다른 웹페이지에 같은 지속 연결을 통해 보낼 수 있습니다. 지속 연결은 하나의 TCP 연결을 통해 여러 개의 HTTP 요청/응답을 처리할 수 있도록 합니다. HTTP/1.1부터는 지속 연결이 기본으로 상요되며, 여러 개의 요청을 한 연결에서 처리할 수 있습니다.
두 개의 다른 웹페이지 요청도 같은 지속 연결을 통해 보낼 수 있습니다.
3.
비지속적인 연결에서는 하나의 HTTP 요청/응답 후 연결이 종료됩니다. TCP 세그먼트는 일반적으로 하나의 HTTP 요청/응답을 처리합니다.
또한 하나의 TCP 세그먼트가 두 개의 다른 HTTP 요청을 전달할 수 없습니다. 각 요청은 각각 TCP 패킷을 통해 전송됩니다. 하나의 TCP 세그먼트는 두 개의 다른 HTTP 요청을 보낼 수 없는 것입니다.
클라이언트/서버 프로그램 실행
TCP를 이요한 연결 지향형 프로토콜은 서버와 클라이언트 간에 연결이 먼저 설정되어야 합니다. 서버 프로그램이 클라이언트 프로그램보다 먼저 실행되어야 합니다. 서버는 수신 대기 상태에서 클라이언트의 연결 요청을 기다리며, 클라이언트가 서버에 접속 요청을 보냈을 때 연결이 성립됩니다.
서버가 먼저 실행되지 않으면 클라이언트는 서버에 연결할 수 없습니다. 그래서 서버 프로그램이 클라이언트 프로그램보다 먼저 실행되어야 하는 이유는 서버가 연결을 수신대기하고 있어야 클라이언트가 연결을 시도할 수 있기 때문입니다.
UDP를 이용한 클라이언트/서버 프로그램
UDP는 비연결형 프로토콜입니다. TCP와 달리 연결을 설정하지 않고 데이터를 전송할 수 있습니다. 그래서 클라이언트 프로그램은 서버가 먼저 실행되지 않아도 데이터를 전송할 수 있습니다. 이는 UDP가 패킷을 송신할 때 연결을 요구하지 않기 때문에 가능합니다.
클라이언트는 서버가 준비되어 있지 않더라도 데이터를 전송할 수 있으며, 서버가 나중에 준비되더라도 데이터는 수신 가능합니다. UDP에서 클라이언트 프로그램이 서버 프로그램보다 먼저 실행될 수 있는 이유는 UDP가 비연결형이기 때문에, 서버가 실행되기 전에 클라이언트가 데이터를 전송할 수 있기 때문입니다.
DNS의 반복적 질의
1. 사용자가 요청을 시작
2. 로컬 DNS 서버에 질의
3. 루트 DNS 서버에 질의
4. 로컬 DNS 서버가 TLD DNS 서버에 질의
5. 책임 DNS 서버 질의
세그먼트 소스 및 목적지 포트
HTTP포트는 80입니다.
TCP/IP 통신에서 클라이언트와 서버 간의 요청과 응답에 대한 내용입니다. 출발지와 목적지의 IP주소와 포트번호를 분석하는 것인인데 여기서 클라이언트 A에서 서버 B로 하는 경우
요청
출발지는 IP_A 포트번호는 임의 할당 7452로 합니다. -> 목적지는 IP_B, 포트번호는 80입니다.
응답
출발지 IP_B, 포트번호 80 -> 목적지 IP_A 포트번호 7452
두번째 요청 (클라이언트 C에서 서버 B)
IP주소 IP_C -> 포트번호 : 8452 임의할당
목적지 : IP_B 80
네트워크 환경 및 응답시간
총 평균 응답 시간은?
-평균 객체 사이즈 : 900,000비트
-평균 요청률 : 1.2초
-공용 인턴세 대역폭 1.2Mbps
-전송 속도 : 기관의 LAN 속도 : 10Mbps, 공용 인터넷 접속 링크 속도 1.2Mbps
전송 시간 : 파일크기 / 대역폭 = 900,000 / 1,000,000 = 0.75초
평균 요청률 : 1.2초
전송시간 / 1 - (전송시간 * 평균응답률) = 7.5초
7.5초 + 2초 = 9.5초
프록시 서버가 설치된 경우의 총 응답시간 (적중률 0.5)
LAN 대역폭 10Mbps에서 파일을 전송할 경우
전송시간 = 900,000 / 10,000,000 = 0.09초
프록시 서버에 처리된 파일의 전송 시간 0.09초
트래픽 강도
트래픽 강도
패킷의 길이 / 링크의 대역폭
트래픽 강도는 네트워크 링크를 통해 데이터가 얼마나 혼잡하게 이동하는지를 나타내는 지표입니다. 트래픽 강도는 L/R로 계산됩니다. L은 패킷 크기이고 R은 링크의 전송 속도(대역폭)입니다.
L/R은 패킷 전송 시간을 의미합니다. 링크에 도착한 패킷이 그 링크를 통해 전송되는 데 걸리는 시간입니다. a(패킷 도착률) : 초당 패킷이 몇 개 도착하는지를 나타냅니다.
a * (L / R)
트래픽 강도는 이렇게 표현이 됩니다.
1. 트래픽 강도가 0에 가까울 때 : 패킷 도착률이 낮고, 링크가 여유롭게 데이터를 처리할 수 있기 때문에 큐잉 지연 거의 발생 X
2. 트래픽 강도가 1에 가까울 때, 패킷 도착률이 링크 처리 속도를 초과하게 되면 큐잉 지연이 급격히 증가하고, 네트워크 성능이 크게 저하될 수 있으며 패킷 손실이 발생할 가능성이 커집니다.,
3. 트래픽 강도가 1보다 클 떄 : 패킷 도착률이 링크 처리 속도를 초과하게 되면 큐잉 지연이 급격이 증가하고, 네트워크 성능이 크게 저하될 수 있습니다.
패킷 교환 네트워크에서 메시지 분할의 장단점은?
1. 종단간 지연이 적습니다.
2. 비트 오류 발생 시 분할된 하나만 바꾸면 되므로 효율적입니다.
3. 제어정보 전달에 있어서 데이터의 바이트당 헤더 오버헤드가 높습니다.
'IT 프로그래밍 > 컴퓨터네트워크' 카테고리의 다른 글
[컴퓨터네트워크] Multiplexing and Demultiplexing (0) | 2024.12.02 |
---|---|
[컴퓨터네트워크] 전송계층 프로토콜 설명 (0) | 2024.12.02 |
[컴퓨터네트워크] 응용계층 part3-3 (1) | 2024.10.12 |
[컴퓨터네트워크] video streaming and content 분산 프로그램 (7) | 2024.10.08 |
[컴퓨터네트워크] part3-2 DNS (1) | 2024.10.06 |