Ch1.8 Systems Communicate with Other Systems Using Networks

Park Choong Ho·2021년 8월 16일
0

1.8 Systems Communicate with Other Systems Using Networks

지금까지 시스템을 살펴보면서, 시스템을 하드웨어와 소프트웨어로 분리해서 생각해왔습니다. 실제로는, 현대 시스템들은 종종 네트워크로 다른 시스템과 연결되어 있습니다. 개별 시스템 시점에서 보면, 네트워크는 다른 형태의 입출력 장치로 보일 수 있습니다. 아래 그림을 보시죠.

Figure1.14

시스템이 메인메모리에서 네트워크 어댑터로 연속된 바이트를 복사할 때, 데이터는 네트워크롤 통해 다른 기계로 갑니다. 이를 다르게, 로컬 디스크 드라이브로 간다고 볼 수 도 있습니다. 유사하게, 시스템은 다른 기계에서 보내진 데이터를 읽고 이 데이터를 메인 메모리에 복사할 수도 있습니다.

hello 프로그램으로 돌아와서, 친숙한 텔넷 프로그램을 사용해서 멀리있는 기계에 hello 프로그램을 띄울 수도 있습니다. 로컬 컴퓨터에 텔넷 클라이언트가 돌고 있고 멀리 떨어진 컴퓨터의 텔넷 서버와 연결한다고 가정해보겠습니다. 서버에 로그인을 하고 쉘을 키면, 해당 쉘은 input 명령어를 받을 때까지 기다리고 있을 것입니다. 이런 시각에서 hello 프로그램을 멀리 떨어져 있는 서버에서 돌리는 것은 아래와 같은 기본적인 5가디 단계를 거친다고 할 수 있습니다.

Figure1.15

hello 문자열을 친 후 Enter 키를 누르면, 클라이언트가 해당 문자열을 텔넷 서버에 보내게 됩니다. 텔넷 서버가 네트워크로 부터 문자열을 받은 후에, 서버는 이를 쉘 프로그램에 전달합니다. 그 다음, 쉘은 hello 프로그램을 동작시키고 결과 값을 텔넷 서버에 전달합니다. 마침내 텔넷 서버는 결과 문자열을 네트워크를 통해 텔넷 클라이언트로 전송하고 텔넷 클라이언트는 해당 결과 값을 로컬 터미널에 보여줍니다.

이러한 클라이언트와 서버간의 교환은 전형적인 모든 네트워크 프로그램의 모습입니다. 11장에서는 네트워크 프로그램을 어떻게 만들고 이러한 지식을 간단한 웹서버를 만드는게 어떻게 적용하는지를 배웁니다.

profile
백엔드 개발자 디디라고합니다.

0개의 댓글