application : 네트워크 어플리케이션을 지원한다FTP,SMTP,HTTPtransport: 프로세스 데이터를 전송한다TCP,UDPnetwork:link:physical:어플리케이션이 가능한 구조client-serverpeer to peerServer항상 호스트이
네트워크로 연결된 서로 다른 두 컴퓨터가 데이터를 주고 받게 하는 것어떻게 연결??소켓(Socket)을 이용!데이터를 받는, 주는 소켓이 필요함이 소켓을 구현하는 것엔 함수를 사용하면 됨소켓 생성 (socket 함수)소켓에 주소정보(IP주소, PORT번호) 할당 (bi
대화에 필요한 통신 규약컴퓨터 관점 => 컴퓨터 상호간의 대화에 필요한 통신규약다음 함수 실행int socket(int 프로토콜 체계, int 데이터 전송방식, int 프로토콜 정보)프로토콜 체계?| PF_INET | IPv4 || PF_INET6 | IPv6 |소켓의
소켓을 생성하고 소켓에 주소정보를 넣어줘야한다.이때 주소정보는 IP와 PORT 번호이다.IP는 Internet Protocol의 약자로 인터넷 상에서 데이터를 송수신할 목적으로 컴퓨터에 부여하는 값이다PORT 번호는 컴퓨터가 아닌, 프로그램 상에서 생성되는 소켓을 구분
tcp는 연결 지향 방식이다.소켓생성소켓 주소할당연결요청 대기상태연결 허용데이터 송수신(read,write)연결 종료socket 함수를 이용해 소켓을 생성한다생성된 소켓에 bind 함수를 통해 주소를 할당한다이를 통해 초기화를한 구조체를 소켓에 할당해 소켓에 주소 할당
흐름 제어가 UDP에는 없다.IP: UDP패킷이 호스트에게 전달되도록 한다. But 최종 전달은 아니다!UDP: 호스트로 수신된 패킷을 PORT 정보를 참조해 최종 목적지인 UDP 소켓에 전달그래서 TCP와 달리 연결이 필요 없다.listen과 accept 함수가 필요
해결법:일부만 종료(half-close)를 이용하자!=> 이를 "스트림이 형성된 상태"라고 한다.=> 양방향 통신을위해서는 두개의 스트림이 필요!!그런데 close 함수를 사용해 소켓에 연결을 끊으면!두개의 스트림 모두 끊어진다...그래서 half-close를 사용하자
가상의 주소를 실제 주소로 변환하는 과정을 거쳐야함!디폴트 DNS 서버를 통해 도메인 네임에 대한 IP주소 정보를 얻음유저가 도메인 네임을 입력브라우저는 도메인 네임의 IP주소를 디폴트 DNS 서버를 통해 얻음실제 서버에 접속그러나 디폴트 DNS 서버가 모든 도메인의
소켓 옵션 확인 (레발 안에 옵션이 있다!)성공시 0 실패시 -1 반환sock: 확인할 소켓의 파일 디스크립터level: 확인할 옵션의 프로토콜 레벨optname: 확인할 옵션의 이름optval: 확인 결과의 저장을 위한 버프의 주소값optlen: optval로 전달된
프로세스는 OS로부터 ID를 부여받음 = 프로세스 ID성공 시 프로세스 ID, 실패시 -1 반환fork의 특징부모 프로세스(원본)fork의 반환값은 자식 프로세스의 ID자식 프로세스(복사본)fork의 반환값은 0자식이 종료되는 경우인자를 전달하면서 exit를 호출mai
프로세스 A -> 파이프 -> 프로세스 B파이프 생성 함수성공 시 0, 실패 -1 반환fd1입구 -> fd0출구 , 1에서 0으로 데이터 전송프로세스간 통신을 위 fork()로 프로세스를 더 생성 후 파이프로 통신파이프에 데이터가 전달되면 먼저 가져가는 프로세스에 데이
하나의 통신채널을 통해 둘 이상의 데이터를 전송하는 기술최소한의 요소만 사용해 최대한의 데이터를 전달하는 기술멀티프로세스에선 여러개의 프로세스가 클라이언트와 통신했다. 그럼 하나의 프로세스로 여러개의 클라이언트들과 어떻게 통신할까?select 함수를 사용하면 멀티플렉싱
데이터 송수신시 적용할 옵션정보를 택할 수 있다성공시 송수신한 바이트 수 실패시 -1 반환sockfd: 연결을 의미하는 fdbuf: 데이터를 저장할 저장한 버퍼의 주소값nbytes: 전송할 수신할 수 있는 바이트 수flags: 송수신시 적용할 옵션정보read write
단 한번에 데이터 전송으로 다수의 호스트에게 데이터를 전송 가능하다.멀티캐스트 특성특정 멀티캐스트 그룹을 대상으로 데이터를 딱 한번 전송한다UDP를 기반한다그룹에 속하는 클라이언트는 모두 데이터를 수신멀티캐스트 그룹의 수는 IP주소 범위 내에서 얼마든지 추가가 가능특정
시스템 함수read()write()open()close()표준 입출력fopen()fclose()fdopen()fileno()파일이 읽히거나 쓰이기 전에, 라이브러리 기능에 의해 열린다fopen"data.txt"와 같은 외부 이름; 하우스키핑 및 운영 체제와의 협상을 수
fork를 통한 스트림의 분리입 출력을 나누어 구현의 편의성속도 향상의 기대파일 포인터를 통한 스트림의 분리파일 포인터는 모드를 구분해야함으로구현 편의성버퍼링 기능의 향상=> 스트림의 분리 방법, 분리 상황이 달라지면 이점에도 차이가 존재안된다!!! fclose()를
모든 파일 디스크립터를 대상으로 하는 반복문select를 호출할 때마다 인자로 매번 전달해야하는 관찰대상에 대한 정보들운영체제에 정보를 전달하는 것은 오버로드가 크다.대부분의 운영체제에서 지원을 한다.epoll은??상태 변화 확인을 위한 반복문이 필요가 없다.관찰대상의
프로세스 생성은 OS에서 부담되는 작업이다멀티프로세스의 단점프로세스 생성이라는 부담..프로세스 사이 데이터 교환을 위해 별도의 IPC 기법 적용context switching 오버헤드가 매우 큼=> 스레드 나옴장점스레드 생성, context switching은 프로세스