컴퓨터의 역할은 크게 서버(서비스 제공자), 클라이언트(서비스 요청자)로 구분
컴퓨터의 역할에 따라 네트워크 구조 모델은 피어-투-피어 구조, 클라이언트/서버 구조로 분류
피어 투 피어(P2P) 구조
각 컴퓨터가 서버 또는 클라이언트 역할을 할 수 있음
모든 컴퓨터가 동등하게 요청과 응답이 가능한 구조
네트워크의 각 노드가 자원을 분산 관리
동등 계층간 통신이라고도 하며, 네트워크 구성에 참여하는 컴퓨터 계산과 대역폭 성능에 의존하여 구성되는 통신망임
노드들의 규모가 큰 애드혹으로 서로 연결하는 경우 이용함
디지털 형식 파일 공유, 실시간 데이터(인터넷 전화) 등에서 사용
순수 P2P 파일 전송 네트워크는 동등한 계층 노드들이 서로 클라이언트와 서버 역할을 동시에 수행
그리팅 기술로 진화해 웹하드 형식으로 서비스
클라이언트-서버 구조
컴퓨터의 역할이 클라이언트와 서버로 나뉘는 네트워크 구조 모델
웹사이트에서 웹 서버가 서버 역할을 하고 사용자의 웹 브라우저가 클라이언트 역할을 하는 월드 와이드 웹이 대표적
클라이언트-서버 모델의 모든 자원은 서버에 집중
가장 일반적인 네트워크 구조
서버와 클라이언트 역할이 분리 -> 유지보수가 쉬움
보안 유지가 수월
사용자/개발자 친화적
서버에 네트워크 트래픽과 데이터가 집중
분산형 네트워크보다 견고함이 떨어짐
클라이언트-서버 모델은 가장 많이 사용되는 컴퓨터 구조 모델로 서버 와 클라이언트 사이에서만 통신이 이루어짐
서버와 서버 사이, 클라이언트와 클라이언트 사이의통신은 불가능
일반적으로 클라이언트는 한 번에 하나의 서버와 통신
서버는 클라이언트의 요청을 받아 처리하고 응답을 전송
하나의 서버와 다수의 클라이언트 통신이 가능함
서버
클라이언트 요청이 접수되면 처리하여 응답을 전송
클라이언트와 통신을 위해 소켓을 사용
소켓 (가상 접속구)
통신 종단점을 구현한 네트워크 데이터 구조
서버와 클라이언트의 논리적 전송 통로로 통신 종단점이 필요함
통신 종단점 : 소켓을 식별하기 위해서 하드웨어 주소와 포트 번호로 구성
클라이언트
소켓을 사용하여 서버와 연결 설정
클라이언트는 서버의 존재 및 주소를 알고 있어야 하지만, 서버는 클라이언트의 정보를 알 필요가 없음
데이터 송수신(요청 송신 / 응답 수신)
통신 순서
서버 : 통신 종단점 준비 - 소켓을 통해 네트워크 접속 - 클라이언트의 연결 대기 - 요청이 들어오면 응답
클라이언트 : 통신 종단점 준비 - 서버 연결 설정 - 필요한 데이터를 교환/요청 - 클라이언트가 결과 수신 - 종료
TCP/IP 프로토콜의 데이터 링크 계층, 네트워크 계층, 전송 계층은 OS에 구현
사용자 프로그램은 응용 계층 프로그램
전송 계층의 서비스를 받는 종단점이 소켓이므로, 인터넷 통신을 위해서는 소켓을 생성하고 연결해야 함
응용 프로그램이 연결된 소켓을 식별하기 위해서는 IP주소와 포트 번호가 필요함
단편화(Fragmentation) : 큰 데이터를 네트워크에서 전송할 수 있는 작은 단위(프레임)로 나누는 작업
프레임은 다수의 필드로 구성
연속적인 데이터 흐름 속에서 실제 데이터 영역(페이로드)의 시작과 끝을 찾을 수 있어야 함
프레임 작업
데이터를 분할하고 필드를 추가하여 수신 측에서 프레임을 찾을 수 있도록 해야 함
페이로드 앞에 추가된 정보를 제어 필드
프레임 Example
시작문자 : 프레임의 시작을 나타내는 특수 문자(1byte)
주소 : 수신자를 지정하는 주소 (2byte)
순서번호 : 프레임의 누락이나 중복 검사를 위한 번호 (4byte)
길이 : 페이로드의 길이 (4byte)
브로드캐스팅 (Broadcasting)
네트워크에 연결된 모든 호스트들에게 한 번에 동일한 메시지를 전송
UDP 소켓을 사용
브로드캐스트 주소 사용 : 네트워크주소:255
192.168.0.255 or 255.255.255.255 or '<broadcast>'
멀티캐스팅 (Multicasting)
네트워크 내 특정 그룹의 호스트(컴퓨터)들에게 메시지 동시 전송
다른 네트워크의 호스트에게도 전송 가능
특정 IP 주소를 사용하여 멀티 캐스트 그룹 지정
패킷을 멀티캐스트 그룹으로 전송하면 그룹의 호스트들이 패킷을 수신
UDP 프로토콜 사용
멀티캐스트 주소 : 최상위 4비트가 '1110'이므로 224.0.0.0~239.255.255.255 범위
[Network] TCP/IP 프로토콜 (0) | 2022.01.01 |
---|