네트워크 -1

네트워크 -1

네트워크의 발전 및 역사

모든것은 정보다!

- 자연현상 및 생물활동도 정보 네트워크의 상호작용의 결과이다!

네트워크의 효과

1. 한정된 노드와 공간에 더 많은 정보를 저장할 수 있다.

2. 하나의 경로가 파괴되더라도 다른 경로를 통해 노드에 도달할 수 있다.

컴퓨터의등장

1. 전기와 전자로 작동하는 추론기계 등장.

대량의 정보를 빠른 시간에 처리

2차 중 대전 암호문 해독에 사용

2. 국방을 중심으로 컴퓨터 네트워크에 대한 연구

냉전 시대 안전한 컴퓨터 네트워크에 대한 요구.

중앙 집중형 -> 분산형 네트워크 (네트워크효과)

3. 상업적 컴퓨터 네트워킹을 위한 패킷 통신 방식 개발

- 데이터를 쪼개 여러개의 조각으로 나누어 보내는 기술

- 도착지에서 패킷을 재조식해야하는 부담이 있지만, 네트워크 트래픽을 여러개의 컴퓨터가 공유할 수 있으므로 대량의 데이터 통신에 적합하다는 장점을 가지고 있다.

- 분산 네트워킹 구조 + 패킷 데이터 통신 방식 => 인터넷 기반구조 만들어짐.

- 이후 웹의 등장과 함께 폭발적 성장

- 거대한 인터넷에서 연결하고 데이터를 주고 받기 위한 규약 필요

분산 네트워크 구조 -> 네트워크 구조를 유지하기 위한 프로토콜 : IP (노드 구분할 수 있는 것 필요)

패킷 데이터 통신 방식 -> 통신을 보장하기 위한 프로토콜 : TCP (여러경로통해 목적지도착. 순서가 뒤바뀌거나. 훼손될 수 있다. 패킷의 흐름제어를 위한 프로토콜 필요)

TCP/IP - 인터넷 네트워킹의 기반 프로토콜로서 인터넷이 원활히 작동하는데 중요한 프로토콜.

ip

tcp

osi 7layer - 인터넷 네트워크 통신을 위한 과정을 단계별로 나누어 세분화 시켜놓은 모델.

4. 네트워크 프로그래밍

사실상 네트워킹을 위해 만드러진 소켓이라는 라이브러리를 잘 사용하는 것!

5. 네트워크 프로그래밍을 위한 기반 기술인 BSD Soket은 OS 독립적이다. 공통적인 기술을 제공한다.

- 유닉스 => 시스템 프로그래밍 기술, 네트워크 프로그래밍 기술의 표준... but 인터넷 시대에 적응 실패

- 리눅스 => 인터넷을 이용한 다수의 개발자의 자발적 참여로 발전 됨.

가벼움, 유연함, 오픈소스 를 무기로 인터넷에서 선전되었다. 유닉스의 기술과 철학을 그대로 계승

- 윈도우 => 유닉스와 차별되는 기술.

UC버클리에서 네트워크 프로그래밍 개발을 위한 BSD소켓 개발(C API 지원). 모두에게 공개함

네트워크 프로그래밍 개발을 위한 실질적 산업 표준이 되었다.

모든 유닉스와 리눅스 그리고 윈도우에서 채택함.

- 소켓 - 인터넷프로토콜을 사용해 네트워크 프로그래밍 가능.!

소켓이란 무엇인가?

소켓 - TCP 구현함수 모음 제공

- 전송계층 위에 존재

- 우리는 소켓 라이브러리만 쓰면 됨.

UC버클리대학에서 소켓에대한 C언어로된 인터페이스를 제공하였다.

자유롭게 사용할 수 있도록 공개.

BSD Socket - 사실상 표준이 되었다.

-소켓이 하는일

소프트웨어간 연결. 데이터 통신.

웹 --(소켓)-- [ 인터넷 ]--(소켓)--아파치(문서갖고잇음)

connect accept

소켓을 이용해 연결됨!

연결에는 다양한 방식이있다. 어떤 종류의 정보를 주고 받는지에 따라 다르다.

서버&클라이언트 모델 - 중앙 집중형 정보 제공 방식 N:1

매니저&에이전트 모델 - 매니저프로그램 1 : 에이젼트 프로그램 : N (ex 시스템 네트워크 관리 프로그램 )

P2P 모델 - 동등 계층 모델 - 모든 노드가 동등한 자격으로 네트워크에 참여(서버이면서 동시에 클라이언트가되는) ex 토론토

모델의 종류에 상관없이 대부분 소켓을 사용.

네트워크 프로그램은 인간 커뮤니케이션의 모방

네트워크 프로그램 흐름

1. 기존의 망에 노드를 추가하려면 = 소켓 준비!

2. 네트워크에 참여하려면 전체 네트워크에서 구분할 수 있는 유일한 번호를 가져야 한다. = ip주소 port주소

=> 인터넷망 참여!

3. 통신상대 찾아가기 = 상대방의 ip주소,port번호

흐름

1. 송신측 - 소켓생성 -> 포트번호 부여 ->상대 ip/port주소로 연결 -> 통신 -> 종료

2. 수신측 - 소켓생성 -> 포트번호 부여 > 상대편 연결 기다리기 -> 통신 -> 종료

각 과정에 맞는 소켓api를 배치하여 프로그램을 만든다.

[소켓함수]

인터넷과 연결하기 위한 접점인 소켓 생성

socket(int domain, int type, int protocop);

1. domain : 소켓의 사용영역 정의 - af_inet(인터넷영역에서 사용하는 소켓)

2. type, protocol :소켓타입과 프로토콜 TCP or UDP

socket_STREAM <>IPPORTO_TCP / SOCKET_DGRAM <> IPPORTO_UDP

- 소켓 생성후 반환값 : 소켓 지정 번호

-connect(int sockfd, ?,? ? ) - 원격 소켓에 연결하기 위한 함수

원격의 주소, 포트번호, 등등 구조체..

전화 - 한 사람이 회선 독점! 전화 교환원이 양쪽의 회선을 연결해줌! - 회선 교환 방식

인터넷 - 패킷전송을 통한 회선 공유! - 패킷 교환 방식

공인ip - 사설 ip

from http://zzangyeon.tistory.com/32 by ccl(A) rewrite - 2021-10-09 16:26:34