2023. 10. 23. 15:36ㆍ데이터통신 , 네트워크
Application 아키텍처
(1) client-server
(2) peer-to-peer (P2P)
Clinet-Server
server
- public 주소여야 함
- 서버는 항상 활성화 상태여야 함.
client
- 클라이언트끼리 직접 서로 통신하지 않고 서버를 통해 통신.
P2P
- 서버를 통하지 않고 직접 통신
- 서로가 서버역할도 했다가, 클라이언트 역할도 함
Processes communicating
* process: 하나의 호스트 내에서 실행 중인 프로그램
* inter-process communication: 한 호스트 내에서 두 프로세스가 통신하는 경우
-> OS에 의해 정의된다.
* 서로 다른 호스트 내에서 프로세스끼리 통신하는 경우
-> 대표적으로 socket
Addressing processes
- host는 구별가능한 32bit IP주소를 가진다.
- 프로세스들이 동일한 아이피를 사용할 때는 포트번호로 구별해야 한다.
app이 필요한 transport service
- data integrity: 데이터 무결성
-> 데이터 손실 최소화(no loss) - timing
-> 정해진 시간 내에 전송되도록 - throughput: 처리량
-> 송신 프로세스가 수신 프로세스로 비트를 전달할 수 있는 비율 - security: 보안
Internet transport protocols services
TCP service
- reliable transport
-> 어떤 게 믿음직한가?
1. no loss
2. no delay
3. inorder delivery (보낸 순서대로 받아지는) - flow control
-> sender는 receiver가 한 번에 너무 많은 데이터를 받지 않게 조절해야 함 - congestion control
-> 인터넷의 전체 성능향상을 위해.
네트워크가 혼잡해지면 통신하는 프로세스 속도를 낮춘다. - connection-oriented: 연결지향형
1. TCP가 메시지 전송 전에 클라이언트와 서버가 서로 전송 제어 정보를 교환하도록 함
-> 핸드셰이킹
2. 메시지 전송 후 마치면 연결을 끊음
UDP service
- unreliable transport, unordered delivery
-> no loss, no delay, inorder delivery
이 중에 하나라도 해당 안되면 unreliable 하다고 한다. - flow control, congestion control, connection-oriented가 없다.
그럼 UDP를 어디에 쓸까?
-> 데이터의 처리가 TCP보다 빠르다. 빠르게 연결해야 하는 곳에서 사용.
안정성이 TCP에 비해 떨어지므로 데이터가 분실되더라도 상관없는 곳에서 사용.
1. 스트리밍 (예: 유튜브)
2. 인터넷 전화 (예: 스카이프)
Socket Programming
(1) TCP 서버의 함수 호출 순서
1. socket() : 소켓 생성
2. bind() : 소켓 주소할당
3. listen(): 클라이언트 연결요청 대기상태
4. accept(): 클라이언트 연결허용
5. recv() : 수신
send(): 송신
6. close(): 연결종료, 소켓닫기
(윈도우에서는 closesocket())
TCP 클라이언트의 함수 호출 순서
1. socket(): 소켓 생성
2. connect(): 연결요청
3. recv(), send()
4. close(): 연결종료, 소켓닫기

(2) UDP 서버의 함수 호출 순서
1. socket() : 소켓 생성
2. bind() : 소켓 주소할당
3. sendto() : 데이터 송신
recvfrom() : 데이터 수신
4. close(): 연결종료, 소켓닫기
UDP 클라이언트의 함수 호출 순서
1. socket(): 소켓 생성
2. sendto(), recvfrom()
3. close(): 연결 종료, 소켓닫기
* TCP와의 차이점
- TCP와 달리 연결 설정의 과정이 필요 없다(no handshaking)
- TCP는 목적지의 주소정보를 이미 알고 있어서 주소 정보를 추가하지 않아도 되지만,
UDP는 연결상태를 유지하지 않으므로 데이터를 전송할 때마다 반드시
목적지의 주소정보를 추가해야 한다. - TCP는 1대1 통신만 가능
UDP는 1대다 통신 가
HTTP
: hypertext transfer protocol
웹에서 사용하는 프로토콜
HTTP connections
1. non-persistent HTTP : 비지속 연결
-> 클라이언트-서버 상호작용 간에 각 요구/응답 쌍이
분리된 TCP 연결로 보내짐.
한쌍이 끝나면 연결이 끊어짐.
response time=2 RTT + file transmission

2. persistent HTTP : 지속 연결
-> 클라이언트-서버 상호작용 간에 각 요구/응답 쌍이
같은 TCP 연결상으로 보내짐
* RTT(Round Trip Time)
: 패킷이 왕복하는 데 걸리는 시간
* Cookies: 서버가 사용자 접속을 제한하거나 사용자에 따라 콘텐츠를 제공하기 위해
사이트가 사용자를 추적하도록 해준다.
authorization: 로그인 저장
recommendations: 추천
* Web caches( proxy server)
: 웹서버를 대신하여 클라이언트 요청을 만족시키기 위한 것이 목적.
캐시에 저장되어 있다면 빠르게 요청을 만족시킬 수 있다.
-> 전체 웹 트래픽을 줄여서 성능개선,
클라이언트 요청 response 시간을 줄일 수 있다.
'데이터통신 , 네트워크' 카테고리의 다른 글
| Chap 6 - The Link Layer and LANs (0) | 2023.11.28 |
|---|---|
| 컴퓨터 네트워크 - Chap 3. Transport Layer (2) | 2023.10.23 |
| 컴퓨터 네트워크 - Chap1 (0) | 2023.10.23 |
| 데이터 통신- Connecting Devices(연결 장비) (0) | 2023.06.03 |
| 데이터 통신 - 유선랜: 이더넷 (4) | 2023.06.03 |