on
네트워크 -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