세리프 따라잡기
WEEK07 - 네트워크 프로그래밍 본문
※ 책에서 모르는 단어 정리 및 보충 설명
11.1 클라이언트-서버 프로그래밍 모델
클라이언트 서버 모델(client–server model)은 서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해주는 분산 애플리케이션 구조이자 네트워크 아키텍처를 나타낸다. 웹 시스템도 확장된 '클라이언트 서버 시스템'으로 분류되나, 일반적으로는 클라이언트 서버 시스템이라고 하면 웹 시스템이 나오기 이전의, 사용자 PC에는 클라이언트가 설치되어 화면을 처리하고 서버에서는 자료를 처리하는 시스템을 일컫는다. #위키
클라이언트 = 서비스를 사용하는 사용자 또는 사용자이 단말기를 가리킴
서버 = 서비스르르 제공하는 컴퓨터, 다수의 클라이언트를 위해 존재하기에 일반적으로 매우 큰 용량과 성능을 가지고 있음. but 웹 2.0에서는 클라이언트이자 동시에 서버인 환경이 많아지면서 변화가 일어난다고..
클라이언트-서버 구조로 된 네트워크 프로그램을 작성하거나 특정 시스템이 클라이언트-서버 구조로 만들어졌다는 말은 = 클라이언트와 서버가 각자의 역할에 맞게 구성되었다는 말
ex. www(world wide web) = 웹 사이트에선 웹 서버가 서버 역할을, 사용자가 쓰는 웹 브라우저(explorer)가 클라이언트 프로그램.
FTP란 파일 전송 프로토콜(file transfer protocol)의 약자이며 TCP/IP 네트워크(인터넷)상의 장치가 파일을 전송할 때 사용하는 규칙
= 즉, 파일을 이동할 때 사용하는 프로토콜이다~
FTP 서버는 파일을 하나의 장치에서 다른 장치로 전송하는 소프트웨어 애플리케이션을 말함
= FTP 서버는 FTP 주소를 가지고 있고 FTP 연결을 수신하는 데 사용되는 컴퓨터라고 생각하면 된다.
= FTP 서버는 두 가지 작업을 실행 = '받기'와 '보내기'
= 즉, 기본적인 관점에서 FTP 서버는 수신자와 전송자 사이에 위치한 중간 지점
이더넷(Ethernet)은 컴퓨터 네트워크 기술의 하나로, 일반적으로 LAN, MAN 및 WAN에서 가장 많이 활용되는 기술 규격. 이더넷은 OSI 모델의 물리 계층에서 신호와 배선, 데이터 링크 계층에서 MAC(media access control) 패킷과 프로토콜의 형식을 정의
- 이더넷은 네트워크에 연결된 각 기기들이 48비트 길이의 고유의 MAC 주소를 가지고 이 주소를 이용해 상호간에 데이터를 주고 받을 수 있도록 만들어졌다. 전송 매체로는 BNC 케이블 또는 UTP, STP 케이블을 사용하며, 각 기기를 상호 연결시키는 데에는 허브, 네트워크 스위치, 리피터 등의 장치를 이용한다. #위키
- 이더넷 허브는 이더넷 네트워크에서 여러 대의 컴퓨터, 네트워크 장비를 연결하는 장치. 한 대의 허브를 중심으로 여러 대의 컴퓨터와 네트워크 장비가 마치 별 모양으로 서로 연결되며, 같은 허브에 연결된 컴퓨터와 네트워크 장비는 모두 상호 간에 통신을 할 수 있게 된다.
- 이더넷 스위치는 허브와 목적이 거의 동일하지만, 훨씬 향상된 네트워크 속도를 제공한다. 이는 각 컴퓨터에서 주고 받는 데이터가 허브처럼 다른 모든 컴퓨터에 전송되는 것이 아니라, 데이터를 필요로 하는 컴퓨터에만 전송되기 때문에 가능하다. 따라서 허브처럼 병목 현상이 쉽게 생기지 않는다. 또한 대부분의 이더넷 스위치는 전이중 통신방식(full duplex)을 지원하기 때문에 송신과 수신이 동시에 일어나는 경우 훨씬 향상된 속도를 제공
근거리 통신망(LAN, local area network)은 네트워크 매체를 이용해 집, 사무실, 학교 등의 건물과 같은 가까운 지역을 한데 묶는 컴퓨터 네트워크이다. 이더넷과 와이파이는 근거리 통신망에 사용하기 위해 흔히 쓰이는 기술 두 가지이다.
↔ 광역 통신망(WAN, wide area network)은 더 넓은 지역 범위를 아우를뿐 아니라 일반적으로 전용선 또한 동반하기도 한다.
소켓 인터페이스에 대해
1. 소켓 인터페이스의 특징
▷ 특정 운영체제 및 프로그램 언어에 의존적으로 동작함
- 소켓 인터페이스 자체는 TCP/IP 표준이 아니고, 소켓 API는 운영체제에서 제공된다
▷ 소켓은 기본적으로 네트워킹을 위한 I/O(입출력)임
- 응용 프로그램과 통신 프로토콜들(TCP, UDP 등)과의 인터페이스(API) 역할을 함
▷ 클라이언트/서버 모델에 기초
2. 소켓 호출의 형식(socket system call)이란?
▷ 소켓 동작(생성, 바인딩, 연결, 대기, 허용, 읽기, 쓰기, 끊음 등)을 위한, 시스템 API 인터페이스에 대한 호출 형식들
TCP와 UDP에 대해
데이터를 보내기 위해 사용하는 프로토콜 #참고한 블로그 #내가 정리했던 것
TCP(transmission control protocol): 전송을 제어하는 프로토콜(규약) = 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜을 말한다.
→ 일반적으로 TCP와 IP를 함께 사용, IP가 데이터의 배달을 처리하면 TCP는 패킷을 추적 및 관리하게 된다.
TCP는 연결형 서비스를 지원하는 프로토콜로 인터넷 환경에서 기본으로 사용
TCP 특징
- 연결형 서비스로 가상 회선 방식을 제공
- 3 way handshaking 과정을 통해 연결을 설정하고 4 way handshaking을 통해 해제
- 흐름 제어 및 혼잡 제어
- 높은 신뢰성을 보장
- UDP보다 속도가 느림
- 전이중(full-deplex), 점대점(point to point) 방식
UDP(user datagram protocol): 사용자 데이터그램 프로토콜 = 데이터를 데이터그램 단위로 처리하는 프로토콜을 말한다.
→ 데이터그램이란 독립적인 관계를 지니는 패킷이라는 뜻, UDP의 동작방식을 설명하자면 TCP와 달리 UDP는 비연결형 프로토콜. 즉, 연결을 위해 할당되는 논리적인 경로가 없는데, 그렇기에 각각의 패킷은 다른 경로로 전송되고 각각의 패킷은 독립적인 관계를 지니게 되는데 이렇게 데이터를 서로 다른 경로로 독립적으로 처리하는 것을 UDP라고 한다.
UDP 특징
- 비연결형 서비스로 데이터그램 방식을 제공
- 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차 X
- UDP헤더에 checksum 필드를 통해 최소한의 오류만 검출
- 신뢰성 낮음
- TCP보다 속도가 빠름
+ 팀끼리 이야기
소켓에는 네트워크 주소 체계를 정하는 것이고
32 64비트
tcp udp로 할지
32비트에 tcp로만 진행을 함
소켓 생성하는 함수를 영어로 처리한다
서버 식별자를 만들어주는 함수 socket
2가지가 있따
ip주소랑 port번호
bind가 socket에다가 ip주소를 넣어주는 거
port 16비트 0~2^16승
ip주소 32비트 0~2^8 범위
listen 어려워...
dns system
'SW사관학교 정글' 카테고리의 다른 글
WEEK07 - TIL Proxy에 대해 [기초] (0) | 2022.05.17 |
---|---|
[CS study] - 2 (0) | 2022.05.16 |
[CS study] - 1 (0) | 2022.05.13 |
[Algorithm study] TIL - enumerate에 대해 (0) | 2022.05.11 |
[CS study] TIL - 네트워크(Network): TCP/IP 4계층 (0) | 2022.05.11 |